Foxtable(狐表)用户栏目专家坐堂 → [求助]如何对于网络不好的时候禁止操作


  共有2647人关注过本帖树形打印复制链接

主题:[求助]如何对于网络不好的时候禁止操作

帅哥哟,离线,有人找我吗?
vvfree
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
[求助]如何对于网络不好的时候禁止操作  发帖心情 Post By:2015/11/23 2:20:00 [只看该作者]

在网络慢的时候加载表会导致系统假死,
1.怎么样去检测网速是否符合 然后操作?
2.LoadFilter 的加载怎么去实现进度条提示?

 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By:2015/11/23 8:42:00 [只看该作者]

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

 

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

 

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

 

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

 

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
回复:(大红袍)1、定时ping一下服务器或者某个网站,...  发帖心情 Post By:2015/11/23 12:53:00 [只看该作者]

但是问题就在于此,不是不通  比如说 只有20KB速度,一样可以ping一样可以 TryConnectHost  但是就是 加载保存很慢 。我想有没有方法可以对其网速监测 大于20KB才去对其操作?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
回复:(大红袍)呃,测速的过程中,就占用带宽的,不...  发帖心情 Post By:2015/11/23 14:50:00 [只看该作者]

这样的 话能不能获取PING值 然后判断PING值大小 去定义是否操作,或者说针对设定某个数据库读取到本地完成的时间大小去判定

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:448 积分:3436 威望:0 精华:0 注册:2015/3/4 15:55:00
回复:(大红袍)1、定时ping一下服务器或者某个网站,...  发帖心情 Post By:2015/11/23 15:05:00 [只看该作者]

2、beforeLoad事件弹出窗口提示加载,afterLoad事件关闭提示窗口。
我按钮执行了
DataTables("Table1").LoadFilter = "[wlbm] > '' "
DataTables("Table1").Load()

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

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/11/23 15:07:00 [只看该作者]

窗口不能用 模式窗口,改成 独立窗口。

 回到顶部