日期:2014-05-19  浏览次数:20570 次

WEBFROM里定时执行,以及客户端与服务器时间同步问题
1,我想让服务器隔5分钟执行数据统计
2,在后30秒内IE客户端的相应按键提交被禁止,无法提交新的数据
3,服务器结算完毕后,让客户端的IE显示统计结果,又开放IE浏览器的相应按键,允许提交新的数据


------解决方案--------------------
这几个问题用Timer控件就可以了吧.

------解决方案--------------------
浏览器的javascript执行时非常脆弱、很容易出错中断的。如果你要在系统IO控制方面玩得很花哨,写WinForm程序来做,不要写web程序。

当你搞得很复杂的时候,如果我操作,我肯定会按“刷新”键等来刷新,或者重新开一个窗口将url复制过去,即使重新登录也没关系,反正没有耐心等着你那不知在做什么的诡异页面活过来。
------解决方案--------------------
这个 需要使用js控制 你的提交按钮
并刷新 页面获取 数据吧
function waittm()
{
document.getElementById( 'btnSub ').disabled= false;
}

function timerBtn()
{
document.getElementById( 'btnSub ').disabled= true;
window.setTimeout( 'waittm ', 30000);
}

<input type= "submit " id= "btnSub " value= "提交 " onclick= "timerBtn(); "/>
------解决方案--------------------
另外,其实我一直尽力强调,不要仅仅再客户端做什么花哨的控制。在客户端实现这些功能之前,一定要在服务器端先实现。

internet本来就是运行在低速、时通时断的网络中的,它的技术就是基于这种方式来提高和平均服务器的负载。网页访问服务器时经常出现通讯异常、服务器异常状况,这是在所难免的。用c/s软件的方式去写Web应用,只能糊弄最初阶段。

例如考试系统,客户的页面如果与web服务器通讯出现异常时,刷新或者重新登录,应该继续参加考试,而不是从新开始。
------解决方案--------------------
这使我想起那个“防止客户端‘刷新’重复提交数据”的问题。本来,例如录入订单明细记录的时候,应该在业务对象中设计“行号”这个字段,界面上每当产生待录入空白行会默认产生最新的行号,这样从业务逻辑上本来就不可能能够“刷新”提交重复记录,因为行号重复。在客户端控制输入键,那是次要的,如果有闲功夫在玩那种“技巧”。

------解决方案--------------------
用JS写吧!
setTimeout
setInterval
再加上AJAX,过会连接下服务器
------解决方案--------------------
楼主的解决方案得换换 HTTP协议是被动的 强制使用定时刷新机制会得不偿失的
------解决方案--------------------
确实,做web程序,不能太强调客户端与服务端的同步性,web的访问,从服务器获取信息并在本地显示所需要的时间,与网络访问速度,和服务器负担有直接的关系。因此我建议可以在服务器端做每搁五分钟的统计,并把统计结果放进表里,在web页面则可以花更多时间,如10分钟刷新下从新获取统计表的数据