Javascript 具有最小网络流量的进度条

Javascript 具有最小网络流量的进度条,javascript,jquery,coldfusion,internet-explorer-8,websocket,Javascript,Jquery,Coldfusion,Internet Explorer 8,Websocket,问题的简短版本: 我需要向用户显示流程的进度。我很想使用WebSocket,但我必须支持IE8。既然我不能使用WebSocket,我是不是就不能使用JavaScriptsetTimeout和ping了?有没有我还没听说过的新技术?我正在寻找一种不涉及太多网络流量的解决方案(不是详细的解决方案,只是一种我还没有听说过的技术或技术的名称,如果有的话) 长版本: 我的申请表中有一些进度条。他们通过执行$来工作。post启动一些流程。这个过程完成了它的任务,并在过程中设置了几个会话变量,说明它的进度、记

问题的简短版本: 我需要向用户显示流程的进度。我很想使用WebSocket,但我必须支持IE8。既然我不能使用WebSocket,我是不是就不能使用JavaScript
setTimeout
和ping了?有没有我还没听说过的新技术?我正在寻找一种不涉及太多网络流量的解决方案(不是详细的解决方案,只是一种我还没有听说过的技术或技术的名称,如果有的话)

长版本: 我的申请表中有一些进度条。他们通过执行
$来工作。post
启动一些流程。这个过程完成了它的任务,并在过程中设置了几个会话变量,说明它的进度、记录过程、文件大小等。。。在初始的
$.post之后,我还启动一个“heartbeat”或“ping”进程,该进程将运行并获取这些会话变量,以显示用户完成百分比、记录进程和当前文件大小。它每1/2秒触发一次,这样用户可以看到进度条平稳地增加,处理的记录数量平稳地增加,并且可以看到生成的PDF的大小实时增长。多年来它一直工作得很好。ping过程的前端如下所示

function rptCheckProgress(id)
{
    jQuery.ajax({
        async:false,
        cache:false,
        url: 'rpt.cfc?method=rptCheckProgress&rptId='+id,
        success: function(data)
        {
            jQuery('#libRptProgress').html(data);
            if (!gStopHeartBeat) setTimeout("rptCheckProgress("+id+");", 500);
        }
    });
}

现在,我必须实现更多这样的场景,这些场景需要“ping”来显示进度。我真的很讨厌做这么多的小ping,尤其是因为我们的软件使用的网络非常慢,但我不知道其他的方法。我很想使用WebSocket,但我必须支持IE8。由于我不能使用WebSocket,我是否一直在使用JavaScript
setTimeout
并执行ping?

使用,如果可能,它会使用WebSocket,但会返回到长轮询。如果您不想使用socket.io,请直接使用长轮询。

使用,它在可能的情况下使用WebSocket,但会返回到长轮询。如果您不想使用socket.io,请直接使用长轮询。

使用,它在可能的情况下使用WebSocket,但会返回到长轮询。如果您不想使用socket.io,请直接使用长轮询。

使用,它在可能的情况下使用WebSocket,但会返回到长轮询。如果您不想使用socket.io,请直接使用长轮询。

ColdFusion的WebSocket实现也有退路。我相信它会回到Flash上。。。这意味着它不会像socket.io声称的那样覆盖所有设备

我听说过ColdFusion的Websockets有很多优点,它与CFFORM等不同,但通常用JS自己做这件事是最好的选择。 我听说过socket.io,但我不知道更多

我不会试图重新发明轮子,而WebSocket就是为此而设计的,因此,将它们与它们的回退一起使用将为您提供最新浏览器上可能的最佳方案,并为那些需要它的浏览器(如IE8)提供传统的长轮询


根据您的需要,其中一个应该可以帮助您解决问题。

ColdFusion对WebSocket的实现也有退路。我相信它会回到Flash上。。。这意味着它不会像socket.io声称的那样覆盖所有设备

我听说过ColdFusion的Websockets有很多优点,它与CFFORM等不同,但通常用JS自己做这件事是最好的选择。 我听说过socket.io,但我不知道更多

我不会试图重新发明轮子,而WebSocket就是为此而设计的,因此,将它们与它们的回退一起使用将为您提供最新浏览器上可能的最佳方案,并为那些需要它的浏览器(如IE8)提供传统的长轮询


根据您的需要,其中一个应该可以帮助您解决问题。

ColdFusion对WebSocket的实现也有退路。我相信它会回到Flash上。。。这意味着它不会像socket.io声称的那样覆盖所有设备

我听说过ColdFusion的Websockets有很多优点,它与CFFORM等不同,但通常用JS自己做这件事是最好的选择。 我听说过socket.io,但我不知道更多

我不会试图重新发明轮子,而WebSocket就是为此而设计的,因此,将它们与它们的回退一起使用将为您提供最新浏览器上可能的最佳方案,并为那些需要它的浏览器(如IE8)提供传统的长轮询


根据您的需要,其中一个应该可以帮助您解决问题。

ColdFusion对WebSocket的实现也有退路。我相信它会回到Flash上。。。这意味着它不会像socket.io声称的那样覆盖所有设备

我听说过ColdFusion的Websockets有很多优点,它与CFFORM等不同,但通常用JS自己做这件事是最好的选择。 我听说过socket.io,但我不知道更多

我不会试图重新发明轮子,而WebSocket就是为此而设计的,因此,将它们与它们的回退一起使用将为您提供最新浏览器上可能的最佳方案,并为那些需要它的浏览器(如IE8)提供传统的长轮询


根据您的需要,其中一个应该可以帮助您解决问题。

服务器发送事件今天可能是一个选项:

开发使用服务器发送事件的web应用程序更容易 与websockets相比。您需要在服务器上编写一些代码来 将事件流式传输到前端,但客户端代码几乎可以正常工作 与处理任何其他事件相同


服务器发送事件今天可能是一个选项:

开发使用服务器发送事件的web应用程序更容易 与websockets相比。您需要在服务器上编写一些代码来 将事件流式传输到前端,但客户端代码在almo下工作