0

我正在使用多线程来更新/显示页面的内容。页面正在使用多个(和嵌套的)更新面板。现在,我正在使用以下逻辑来更新页面。

我有七个线程,每个线程通过查询数据库获取数据并将它们显示在页面的特定部分。我们启动线程并等待 2 分钟,如果某些线程仍在工作,则在通过 2 分钟后,我们会中断这些并在页面上显示填充的数据,这些对线程的调用正在页面加载事件中进行。

这里的问题是我们必须在页面加载之前等待特定时间,然后在该时间限制之后,页面将显示填充数据。用户需要等待很长时间才能看到该页面,这给人留下了非常糟糕的印象。

如果我们取消 2 mints 的限制,那么页面渲染速度很快,但它不会显示所有数据。

我在这里想要的是,当我们调用线程时,我们不需要等待所有线程,当一个线程完成时,它应该在页面上显示它的数据,并且一旦其他线程完成,它们应该相应地显示它们的数据。

4

1 回答 1

0

在测试了许多技术后,我找到了这个问题的解决方案。

为了实现这一点,我们不需要使用线程。当我们调用页面时,服务器会创建该页面的对象并执行所有必需的执行,然后渲染该页面,在服务器上销毁其对象并将渲染的页面发送到客户端浏览器。所以渲染后我们无法接收线程的响应。要接收线程的响应,我们必须停止显式呈现页面(这会导致延迟,这是我们不希望的)。

所以我们的解决方案是使用带有 Web 方法的 JSON Ajax API(如果您正在处理复杂的对象,则使用序列化和反序列化)。

我们必须加载包含所有控件的页面,页面的 onload 事件,调用使用 JSON API 调用 Web Method 的 javascript 方法,在收到 Web Method 的响应后,我们必须使用 JavaScript/JQuery 手动更新相应的控件。

于 2012-12-27T08:00:05.650 回答