以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何对于网络不好的时候禁止操作  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=77638)

--  作者:vvfree
--  发布时间:2015/11/23 2:20:00
--  [求助]如何对于网络不好的时候禁止操作
在网络慢的时候加载表会导致系统假死,
1.怎么样去检测网速是否符合 然后操作?
2.LoadFilter 的加载怎么去实现进度条提示?

--  作者:Hyphen
--  发布时间:2015/11/23 8:42:00
--  

如果网络经常不好,可以做延迟保存,使用2套数据库,一个远程数据库,一个本地数据库,结构一样。

 

ping 一下网络,设置超时时间,超时认为不通,使用本地数据库。当网络通畅的时候,适当的时机再进行远程和本地数据库的更新。

 

这种作法对及时性要求高的系统不适合,而且对设计要求较高。

 

所以还是.......装个速度高点的宽带吧......

 

 

LoadFilter 的加载无法实现进度条提示


--  作者:大红袍
--  发布时间:2015/11/23 9:37:00
--  

1、定时ping一下服务器或者某个网站,如果ping不通或者出错,就禁止使用,如下代码

 

If TryConnectHost("192.168.1.1") = False OrElse Network.Ping("192.168.1.1") = False Then
    msgbox("服务器不可用")
    systemready = False
    Do until TryConnectHost("192.168.1.1") AndAlso Network.Ping("192.168.1.1")
        application.Doevents
    Loop
    systemready = True
End If
msgbox("ok,可以继续用")

 

2、beforeLoad事件弹出窗口提示加载,afterLoad事件关闭提示窗口。


--  作者:vvfree
--  发布时间:2015/11/23 12:53:00
--  回复:(大红袍)1、定时ping一下服务器或者某个网站,...
但是问题就在于此,不是不通  比如说 只有20KB速度,一样可以ping一样可以 TryConnectHost  但是就是 加载保存很慢 。我想有没有方法可以对其网速监测 大于20KB才去对其操作?
--  作者:大红袍
--  发布时间:2015/11/23 14:36:00
--  

呃,测速的过程中,就占用带宽的,不建议这样做。

 

测试的方法:下载一个文件,记录间隔时间;下载完成后,读取文件大小,和时间相除

 

Dim pt As Date = Date.Now
Network.DownloadFile("http://www.foxtable.com/download/80211/update.txt", "d:\\test.txt", "" ,"" ,False, 100000, True)
Dim sp As TimeSpan = Date.Now - pt
Dim finfo As New FileInfo("d:\\test.txt")
msgbox(finfo.Length / sp.TotalSeconds & "KB/S")


--  作者:vvfree
--  发布时间:2015/11/23 14:50:00
--  回复:(大红袍)呃,测速的过程中,就占用带宽的,不...
这样的 话能不能获取PING值 然后判断PING值大小 去定义是否操作,或者说针对设定某个数据库读取到本地完成的时间大小去判定
--  作者:大红袍
--  发布时间:2015/11/23 15:00:00
--  

Dim p As new Process()
p.StartInfo.FileName = "cmd.exe"
p.StartInfo.UseShellExecute = False \'关闭Shell的使用
p.StartInfo.RedirectStandardInput = True \'重定向标准输入
p.StartInfo.RedirectStandardOutput = True \'重定向标准输出
p.StartInfo.RedirectStandardError = True \'重定向错误输出
p.StartInfo.CreateNoWindow = True \'设置不显示窗口
p.Start()
p.StandardInput.WriteLine("ping 192.168.1.1 -n 1")
p.StandardInput.WriteLine("exit")
Dim strRst As String = p.StandardOutput.ReadToEnd()

msgbox(strRst)

Dim mc = System.Text.RegularExpressions.Regex.Matches(strRst, "(?<=平均 \\=).*")

msgbox(mc(0).value)


--  作者:vvfree
--  发布时间:2015/11/23 15:05:00
--  回复:(大红袍)1、定时ping一下服务器或者某个网站,...
2、beforeLoad事件弹出窗口提示加载,afterLoad事件关闭提示窗口。
我按钮执行了
DataTables("Table1").LoadFilter = "[wlbm] > \'\' "
DataTables("Table1").Load()

但是beforeLoad事件弹出窗口提示加载之后,我要手动关闭窗口才能显示加载数据  afterLoad事件不能自行关闭窗口????。

--  作者:大红袍
--  发布时间:2015/11/23 15:07:00
--  
窗口不能用 模式窗口,改成 独立窗口。