有这样一个问题想请教各位,我有一个页面目前放置了3个 updatepanel, 3个 updatepanel 中都是 GridView 用来显示数据库中的内容,
现在我需要自动跟新页面上其中一个 GridView 中的项目的实时状态(不是从数据库中查询的),我的设想是 再使用一个 updatepanel 在它的 updatepanel_load() 中获取状态以后返回在通过 js 修改状态显示的地方,在查询状态的时候 updatepanel_load() 被阻塞住最长 30 秒,如果状态在这30秒中改变就立刻返回,否则在 30 秒后超时返回,然后再刷新这个 updatepanel。当我实现好以后发现如下问题,就是我想问的具体内容:
当这个 updatepanel 正在跟新的时候, 我点击按钮刷新其他 updatepanel 时发现需要等到前一个 updatepanel_load 返回以后后一个updatepanel才能更新, updatepanel 到底可不可以多线程并发请求,问题的关键所在是什么?
现在我需要自动跟新页面上其中一个 GridView 中的项目的实时状态(不是从数据库中查询的),我的设想是 再使用一个 updatepanel 在它的 updatepanel_load() 中获取状态以后返回在通过 js 修改状态显示的地方,在查询状态的时候 updatepanel_load() 被阻塞住最长 30 秒,如果状态在这30秒中改变就立刻返回,否则在 30 秒后超时返回,然后再刷新这个 updatepanel。当我实现好以后发现如下问题,就是我想问的具体内容:
当这个 updatepanel 正在跟新的时候, 我点击按钮刷新其他 updatepanel 时发现需要等到前一个 updatepanel_load 返回以后后一个updatepanel才能更新, updatepanel 到底可不可以多线程并发请求,问题的关键所在是什么?
即执行以下:
GridView1.DataBind();
<----按钮激发请求--->web
..........................
<----按钮激发请求--->web
UpdatePanel2<---为了提高实时性这个请求被我阻塞在 web 端最长30秒,Timer激发---> web行为类似多线程编程,但事实上我发现同一个浏览器中的 UpdatePanel (即使在框架的不同帧里)都会互相影响,所有 更新时间在单一线程的队列中完成,就是没有并发的 UpdatePanelLoad()。
但是可以互相不影响的更新
updatepanel 并不是他能不能并发的问题
期待高手回答其中奥秘
试试以下的代码:
UpdatePanel1.Update();
UpdatePanel2.Update();
提议而已 呵呵