1分钟后如何使用javascript刷新Repeater?

迪帕克

我已经创建了一个中继器,现在我想每隔1分钟刷新一次该中继器。打击是我的代码:

 <asp:Repeater ID="gvd" runat="server">

                <ItemTemplate>
                    <tr class="gradeA">
                        <td>
                            <asp:Label ID="lblcategory" runat="server" Text='<%#Eval("Firstname")%>'></asp:Label>

                        </td>
                        <td>
                            <asp:Label ID="lblcontent" runat="server" Text='<%#Eval("Lastname")%>'></asp:Label>
                        </td>

                     </tr>
                </ItemTemplate>

            </asp:Repeater>

它提供了完美的输出,但是现在我想通过javascript刷新整个转发器,因为使用updatepanel会增加服务器的负载

所以我该如何通过javascript做到这一点?

石匠

创建SignalR是为了完全解决您正在描述的问题。

这是您的情况:您想要一种显示可能不断变化的信息的方法。无论何时,都应显示最新信息。

以Web窗体为中心的方法是使用UpdatePanel。但是我自己和其他一些人并不真的喜欢那些。它们通常会在以后产生问题,因为它们与其他技术的配合不好。它们也是“昂贵的”,它们在客户端和服务器之间来回发送大量数据,从而消耗带宽和资源。

deostroll涉及的另一种方法是使用AJAX定期轮询服务器以获取数据。这不是一个坏方法,尽管我不会像他那样实现它。他/她的方法将大量消耗带宽和资源,因为您每隔几秒钟就会重新创建整个表。归结为对话类型格式,他/她的方法如下所示:

Client -> Server - Send me the entire table.
Server -> Client - Here's a 1MB table.
Client -> Server - Send me the entire table.
Server -> Client - Here's an 1MB table.
Client -> Server - Send me the entire table.
Server -> Client - Here's a 1.5MB table.
Client -> Server - Send me the entire table.
Server -> Client - Here's a 1MB table.

相反,基于AJAX轮询的方法应如下所示:

3:30PM Client -> Server - The last data I have is from 3:30PM. Got anything new?
3:30PM Server -> Client - No.
3:31PM Client -> Server - The last data I have is from 3:30PM. Got anything new?
3:31PM Server -> Client - No.
3:32PM Client -> Server - The last data I have is from 3:31PM. Got anything new?
3:32PM Server -> Client - No.
3:33PM Client -> Server - The last data I have is from 3:32PM. Got anything new?
3:33PM Server -> Client - Yes, two new records. Here you go, 10KB.
3:34PM Client -> Server - The last data I have is from 3:33PM. Got anything new?
3:34PM Server -> Client - No.

那会占用更少的带宽。我不会费心地向您展示如何在代码中进行操作,尽管您知道它相对简单,并且相对于deostroll的方法而言是一个巨大的改进。

相反,我想描述基于SignalR的方法如何工作。SignalR是“实时”的。它利用了多种技术来“将”更改从服务器“推送”到客户端。一种用于实现此目的的技术称为Web套接字,这是首选方法。但是,如果客户端或服务器不支持Web套接字,则SignalR可以正常切换到其他技术。您不必担心,所有这些都为您服务。

让我们看一下在SignalR中实现此功能的简单方法。每次更改表数据时,您都希望在客户端上运行JavaScript函数,以使用最新数据更新它们。

首先,我们需要服务器上的集线器。

public class TableHub : Hub
    {
    }

在客户端,执行以下操作以关联事件:

 $(function () {
    var tableHub= $.connection.tableHub;
    tableHub.client.tableChanged= function (html) {
    //append the html markup to your DOM
    };
});

然后,只要表数据发生更改,就在服务器上调用以下代码:

var context = GlobalHost.ConnectionManager.GetHubContext<TableHub >();
string html="<table><tr><td>Some data</td></tr></table>"; //obviously you'd built the HTML table up here
context.Clients.All.TableChanged(html); //call tableChanged() on the client!

这实际上最终tableChanged()将以几乎实时的方式在客户端调用该函数,然后从服务器端启动它!这基本上是远程过程调用。因此,这不仅要考虑选择最佳的可用传输机制(Web袜子,服务器发送事件,长轮询),而且还要解析客户端功能,并允许您dynamics在服务器端使用它们进行调用

那是一个非常基本的例子。我们正在发送表格的整个HTML,这并不理想。但是,只需做一些工作,您就可以通知客户端何时进行API的AJAX调用,以仅检索已更改的表数据,而不是检索整个表。实际上,这是我在最近创建的网站上采用的一种方法,用于将新文章从服务器实时推送到客户端。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Javascript:向上舍入5分钟

来自分类Dev

如何以较小的间隔(例如1分钟)使用Android AlarmManager?

来自分类Dev

GWT如何每隔5分钟自动刷新页面而不用点击按钮?

来自分类Dev

如何每2分钟刷新一次html页面?

来自分类Dev

1分钟倒计时Javascript

来自分类Dev

使用熊猫仅保留timedelta = 1分钟的数据

来自分类Dev

如何使凌空缓存在1分钟内到期

来自分类Dev

@reboot 1分钟后如何开始Cron作业?

来自分类Dev

如何在10分钟后停止萤幕变黑

来自分类Dev

使用celery-beat完成上一个任务后5分钟内如何运行任务?

来自分类Dev

使用T-SQL窗口函数从1分钟数据中检索5分钟平均值

来自分类Dev

从现在开始20分钟后如何在Laravel中使用碳纤维来获取时间?

来自分类Dev

1分钟后退出Applescript

来自分类Dev

单击后如何禁用1分钟的按钮?

来自分类Dev

如果前后1分钟或2分钟,如何舍入到最接近的5分钟间隔?

来自分类Dev

如何在10分钟后停止萤幕变黑

来自分类Dev

如何在5分钟的间隔后使用autoit检查文件更新?

来自分类Dev

1分钟后,JavaScript计时器秒数增加一倍

来自分类Dev

5分钟后无声音

来自分类Dev

@reboot 1分钟后如何开始Cron作业?

来自分类Dev

30分钟后性能下降

来自分类Dev

如何使用Windows批处理脚本专门将文件锁定1分钟?

来自分类Dev

如何使用户的点击等待2分钟后再处理?

来自分类Dev

一分钟的带有cookie的JavaScript倒数计时器将在1分钟后停止

来自分类Dev

PHP的strtotime()关闭1分钟?

来自分类Dev

在1分钟后使用Hangfire和Azure Service Bus重试作业

来自分类Dev

GCMNetorkManager PeriodicTask只能使用1分钟,而不能使用2分钟

来自分类Dev

在cakephp中1分钟后如何销毁cookie?

来自分类Dev

1分钟后截图

Related 相关文章

  1. 1

    Javascript:向上舍入5分钟

  2. 2

    如何以较小的间隔(例如1分钟)使用Android AlarmManager?

  3. 3

    GWT如何每隔5分钟自动刷新页面而不用点击按钮?

  4. 4

    如何每2分钟刷新一次html页面?

  5. 5

    1分钟倒计时Javascript

  6. 6

    使用熊猫仅保留timedelta = 1分钟的数据

  7. 7

    如何使凌空缓存在1分钟内到期

  8. 8

    @reboot 1分钟后如何开始Cron作业?

  9. 9

    如何在10分钟后停止萤幕变黑

  10. 10

    使用celery-beat完成上一个任务后5分钟内如何运行任务?

  11. 11

    使用T-SQL窗口函数从1分钟数据中检索5分钟平均值

  12. 12

    从现在开始20分钟后如何在Laravel中使用碳纤维来获取时间?

  13. 13

    1分钟后退出Applescript

  14. 14

    单击后如何禁用1分钟的按钮?

  15. 15

    如果前后1分钟或2分钟,如何舍入到最接近的5分钟间隔?

  16. 16

    如何在10分钟后停止萤幕变黑

  17. 17

    如何在5分钟的间隔后使用autoit检查文件更新?

  18. 18

    1分钟后,JavaScript计时器秒数增加一倍

  19. 19

    5分钟后无声音

  20. 20

    @reboot 1分钟后如何开始Cron作业?

  21. 21

    30分钟后性能下降

  22. 22

    如何使用Windows批处理脚本专门将文件锁定1分钟?

  23. 23

    如何使用户的点击等待2分钟后再处理?

  24. 24

    一分钟的带有cookie的JavaScript倒数计时器将在1分钟后停止

  25. 25

    PHP的strtotime()关闭1分钟?

  26. 26

    在1分钟后使用Hangfire和Azure Service Bus重试作业

  27. 27

    GCMNetorkManager PeriodicTask只能使用1分钟,而不能使用2分钟

  28. 28

    在cakephp中1分钟后如何销毁cookie?

  29. 29

    1分钟后截图

热门标签

归档