我正在开发一个jQuery插件,人们可以将它们包含在自己的页面中。该插件会在我正在运行的服务中生成作业,该服务位于不同的域中。
要突破域边界我正在使用jQuery的JSONP功能,它可以很好地产生作业。但是,我还需要显示“进度”(0 - > 100%)。到目前为止,我的计划是不断“轮询”工作的进展(彗星会更好,但AFAIK不可能跨域)。
问题是每秒轮询一次进度会导致Firefox在选项卡的标题内不断闪烁“正在加载...”,我觉得这很烦人。 (Firefox之所以这样做是因为JSONP通过脚本标签附加到DOM然后“加载”)。
所以问题的核心是:
是否有可能压制“正在加载...”选项卡标题消息 - 或者 - 是否有更好的方式以跨域方式“流式传输”进度更新?
- FelixGeisendörfer
答案 0 :(得分:0)
答案 1 :(得分:0)
如果这是一个长时间运行的工作,也许你可以获得一些平均运行时间并为用户假冒它,使用不频繁的轮询来调整你的伪造百分比完成。
说平均工作需要十分钟。您可以计算平均每秒应该完成的百分比,以及完全在客户端的虚假更新。
然后,当您的30秒计时器用完时,轮询服务器以获得实际完成百分比,并更新进度条的速率,以便客户端上的假冒将在服务器作业的新估计完成时间结束。
你可以做一些数学计算,找到你的平均表现和你当前测量的时间之间的中间点,但这取决于你的工作时间的变化。
答案 2 :(得分:0)
第一个链接上有示例检测代码,有关其工作原理的详细信息on MDC,如果您需要有关浏览器兼容性的详细信息,我几天前更新了the Wikipedia article。
它的要点是:
值得注意的例外是: