加载 Comet/服务器推送 iframe 时停止浏览器“厄运的悸动”

2023-12-05

当使用 Comet 或 Ajax Long Pull 技术时 - 通常使用 iframe。当 iframe 等待长连接关闭时,浏览器正在旋转其 throbber(进度/加载指示器)。

一些网站,例如 etherpad.com,设法让它停止。

他们是如何做到的呢?


在网上查了一天一夜后,我得出了以下结论:

  1. 服务器发送事件 - 非常酷,目前仅适用于 Opera,但可能是 HTML5 的一部分,其他浏览器有时可能会支持它。添加内容类型为“application/x-dom-event-stream”的新元素标签,允许Server触发事件客户端DOM。据我了解,它不应该显示进度指示器。它也是一个标准的工作草案,而不是像整个 iframe comet 那样的 hack。

  2. XMLHttpRequest - 在 Firefox 和 Safari 中,但在 IE 中则不然,它可用于长拉页面加载,从而能够处理出现在每个 readStateChange 事件上的片段。不会显示进度指示器*。 -- 请参阅下面的评论

  3. ActiveXObject("htmlfile") - 可在 IE 中用于创建当前窗口范围之外的页面/窗口。这使得进度指示器消失!加载的 iframe 将位于不可见的浏览器中。

有关服务器发送事件的更多信息:

  • http://my.opera.com/WebApplications/blog/show.dml/438711

更多关于其他两种技术的信息(也更好地解释了问题): *http://meteorserver.org/browser-techniques/

更深入地了解每种技术以及更多技术:

  • http://cometdaily.com/2007/12/11/the-future-of-comet-part-1-comet-today/
  • http://cometdaily.com/2008/01/10/the-future-of-comet-part-2-html-5’s-server-sent-events/
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

加载 Comet/服务器推送 iframe 时停止浏览器“厄运的悸动” 的相关文章

  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • 在对 VSTS API 的 Ajax 调用中使用 OAuth Bearer Token 而不是 PAT

    我已成功让我的 ASP NET MVC5 应用程序在服务器端用 C 读取和写入 VSTS 工作项 然而 为了获得最佳的用户体验 我真的想使用 Ajax 进行一些更新 我已经能够使用在我自己的帐户下创建的个人访问令牌 PAT 完美地完成此操作
  • 如何使用 AJAX/jQuery 显示打印内容?

    所以我试图理解整个 AJAX jQuery 的事情 现在 当我单独运行这个 PHP 脚本时 我必须等待并观察轮子旋转 直到循环完成然后加载 while row mysql fetch array res postcode to storm
  • FormData 中的 Blob 为 null

    我正在尝试通过远程 API 通过 ajax 在 android 中发送创建的照片 我在用着相机图片背景 https github com an rahulpandey cordova plugin camerapicturebackgrou
  • 添加选项以选择框而不用 Internet Explorer 关闭该框?

    我正在尝试构建一个包含多个下拉选择框的网页 这些下拉选择框在首次打开时异步加载其选项 这在 Firefox 下工作得很好 但在 Internet Explorer 下则不然 下面是我想要实现的目标的一个小例子 基本上 有一个选择框 ID 为
  • 底部页脚的 css 布局,动态 ajax 内容更改页面高度

    Update 实际上 我现在通过放弃固定页脚设计来解决这个问题 动态内容移动页脚并适当调整容器大小似乎没有问题 除非页脚最初固定在浏览器底部 我希望其他人最终能够提供一个兼具两全其美的出色解决方案 I spent all day tryin
  • 处理异步调用后重定向的正确方法

    我需要 如果满足某些条件 则对服务器进行ajax调用以更新数据 我的函数如下所示 function doSomething if something callSomethingAsync window location redirectur
  • 使用 AJAX 和 Jquery 自动完成功能填充表单数据

    我想使用自动完成所选项目来填写表单数据 我的自动完成工作正常 但我无法弄清楚如何通过从自动完成文本框中检索项目来填写表单数据 这是我的代码 HttpPost public JsonResult GetAutocomplete string
  • 使用 jquery fullCalendar 时,为什么我在切换月份后看到重复的事件?

    I am 使用 jquery fullCalendar 插件 http arshaw com fullcalendar 我遇到了一个奇怪的问题 当我加载第一个月 在本例中为 2013 年 12 月 时 它工作正常 我调用我的 ajax 事件
  • 在grails控制器中识别ajax请求或浏览器请求

    我正在开发一个使用大量ajax的grails应用程序 如果请求是ajax调用 那么它应该给出响应 这部分正在工作 但是如果我在浏览器中输入URL 它应该带我到主页 索引页面而不是请求的页面 下面是ajax调用的示例gsp代码
  • JSONP 使用 JQuery 从 HTTPS 协议获取 JSON

    我正在尝试获取从 https 安全站点发送的 JSON 客户端希望不要使用任何服务器端语言 全部都是 Javascript 我读到 当使用 Jquery 中的 ajax 函数时 我必须使用 JSONP 才能从安全站点加载 JSON 我的第一
  • 将列名称与具有 AJAX 数据源的 DataTable 一起使用

    我正在尝试升级我的系统以使用 DataTables 1 10 而不是 1 9 并且我正在尝试找到一种使用 JSON 对象而不是列表传回行内容的方法 具体来说 而不是以格式传回数据 data data data data data data
  • 当复选框条件更改时,如何使用ajax更新mysql数据库?

    我有一个在客户端按行显示的文章表 每篇文章都有一个唯一的 ID 并包含一个复选框以指示该文章是否被选中为收藏夹 如果它是最喜欢的 则该复选框已被选中 如果没有 则未选中 现在 如果特定于每一行的复选框条件发生变化 我需要 js 或 jque
  • CckEditor - 从 AJAX 加载的模板

    我正在使用 CkEditor 并且想要定义一个自定义模板 该模板使用 AJAX 函数来加载 HTML 字符串 我已经能够定义自定义模板 但如果我对模板对象的 html 属性使用函数 则该函数永远不会执行 是否可以使用 AJAX 和默认模板插
  • Fancybox - Ajax 图片库

    我有一个自定义图像库 它用缩略图填充 div 每个缩略图都包含在一个 fancybox 组中 当您单击一个 它在 fancybox 中打开 时 您可以按 上一张 下一张 在第一 页面 上的图像之间循环 要在页面之间移动 您必须关闭 fanc
  • PHP、jQuery 和 Ajax 调用乱序

    我正在使用 jQuery 进行 Ajax 调用 我有 x 数量的 Ajax 调用附加到 div 这些 Ajax 加载请求是由 PHP foreach 循环生成的 问题是它们渲染的顺序不正确 它们被设置在数组中
  • 如何让Gmail像加载进度条一样

    我想在页面的中心和顶部创建一个像 Gmail 一样的加载进度条 并适用于所有浏览器 这是基本代码
  • jQuery / Ajax:如何循环遍历数组作为 Ajax 成功函数的一部分

    我有一个阿贾克斯调用返回一个数组并需要对该数组中的每个值执行某些操作 到目前为止 我有以下内容 但这会返回以下错误 Uncaught TypeError Cannot use in operator to search for length
  • 如何取消 AjaxForm 上的提交

    我正在使用 jQuery 插件 ajax 形式 我尝试实现这样的东西 MyFormID ajaxForm dataType json resetForm true beforeSubmit function validateData ret
  • 使用 AJAX 和 JQuery 按设定的时间间隔刷新 Rails 部分

    I have a page in my rails application that looks like 现在 我有另一个用 python 编码的人工智能应用程序 它处理视频 显示在 Rails 应用程序页面的左侧 并使用捕获的车辆及其相

随机推荐

  • Freemarker 编码 - 用问号代替重音字符

    我正在尝试使用 Freemarker 打印重音字符 但在重音字符的位置 我只得到问号 我已经证实 以下陈述成立 UTF 8 Environment getCurrentEnvironment getConfiguration getDefa
  • 具有多个 gitlab 用户帐户的多个密钥的 SSH 配置

    我在我的服务器上运行 Gitlab CE 并使用多个不同的用户帐户按兴趣对我的存储库进行分组 问题出在 SSH 上 我在github上找到了以下解决方案 https gist github com jexchan 2351996 在本指南中
  • 二叉搜索树递归插入不显示任何内容

    我正在对二叉搜索树进行小型 Java 工作 但是当我实现将节点递归插入到树中并显示它时 我什么也得不到 我已经研究了一段时间了 我不确定 但我认为这是一个传递引用的问题 这是我的代码 public class BST private BST
  • 如何在ios中迭代JSON对象

    我像这样创建 json 对象 id json NSJSONSerialization JSONObjectWithData data options kNilOptions error error 但文档没有告诉我如何循环json对象由键和
  • C - malloc 分配过多内存

    运行 int 一个奇怪的场景 其中 malloc 分配的内存比我要求的多 void function int array int numberOfElements int secondArray malloc sizeof int numb
  • Servlet 过滤器:非常简单的限速过滤器,允许突发

    我想添加一个非常简单的过滤器 对每个 IP 进行速率限制 但仍然允许突发 有点像iptables允许做 我不想安装整个厨房水槽 我需要的只是一个实现该功能的 Filter 类 什么是允许执行简单的 速率限制但允许短突发 的良好数据结构 算法
  • RegSvr32.exe 的 /n 和 /i 参数有什么不同?

    要注册 COM 服务器 我们在提升模式下运行类似的命令 regsvr32 exe com dll 要执行每用户注册 请在用户帐户中执行 regsvr32 exe n i user com dll regsvr32 exe 支持以下参数 u
  • 在 Python 日志记录中跨多个模块访问记录器

    我有一个关于 python 日志记录模块的小问题 我有一个简单的记录器 记录器 basicConfig 如何使用 getLogger 访问同一个记录器 或者 getLogger 是否为我提供了一个我可以访问的日志记录对象 如果是这样 我如何
  • 在Python中比较整数中的数字

    这里确实需要一些帮助 学习 Python 的超级早 目标是获取一个数字并查看数字是否按升序排列 到目前为止我所拥有的是 a int input Enter a 4 digit number b int i for i in str a if
  • 转换日期格式 yyyy-MM-dd'T'HH:mm:ss.SSS

    我有几个NSDate包含符合此格式的值的对象yyy MM dd T HH mm ss SSS 当我尝试转换为不同的格式时 例如MMM dd yyyy HH mm格式化程序总是返回nil 但是 如果我对字符串值进行硬编码 我将通过NSDate
  • Moq 模拟和跟踪会话值

    我在使用 Moq 进行模拟返回会话值集时遇到问题 使用以下内容 public class TestHelpers public long sessionValue 1 public HttpContextBase FakeHttpConte
  • 我的网页周围的 CSS 边框

    我目前在网站周围定位边框时遇到一些问题 我目前正在托管该网站here 我想要一个黄色边框围绕身体 但距离边缘大约 20 30 像素 我还希望边框具有响应能力 因此当我调整浏览器大小时 边框也会跟随 我尝试过的所有方法都不起作用 有人知道我需
  • 检查目标 c 中的字符串是否为回文

    我正在尝试检查字符串是否是回文或不使用 Objective C 我是编程新手 没有任何其他编程语言的经验 所以请耐心等待 我陷入了 if 条件 我想让它说 如果字符串中的第一个位置等于最后一个位置 则字符串是回文 我究竟做错了什么 int
  • 如何将 SOAP 响应转换为 PHP 数组?

    我无法将 SOAP 响应转换为 php 中的数组 这是代码 response client gt doRequest xmlRequest location action 1 这是 SOAP 响应
  • Boost DFS如何保存访问过的顶点?

    我正在看解决方案here 这对我不起作用 但在 行下阅读以实际查看当前问题 I tried boost undirected dfs G vertex 0 G boost visitor vis 但我得到 error C2780 void
  • 出现错误无法解析对程序集 System.Web 的依赖关系

    我不得不更换我的主硬盘 昨天我的 HD 被我们的 IT 技术人员更换了 所以今天 在安装 VS 2015 后 我开始开发我们一直在开发的 WPF 应用程序 我进入了该项目 从 TFS 获取最新信息并进行了构建 我失败并出现以下错误 无法解析
  • 跨 Qt 线程共享数据

    我是 Qt 的新手 所以请原谅问题的简单性 但我对 Qt 线程有点困惑 假设我有 3 个线程 主默认 GUI 线程和我自己创建的 2 个线程 称为 WorkerThread 我的每个 WorkerThreads 都继承自 QThread 并
  • 如何保护 Android 共享首选项的安全?

    常见的位置在哪里SharedPreferencesAndroid应用程序中存储的内容是 data data
  • BlackBerry - 图像 3D 变换

    我知道如何以任意角度旋转图像绘制纹理路径 int displayWidth Display getWidth int displayHeight Display getHeight int x new int 0 displayWidth
  • 加载 Comet/服务器推送 iframe 时停止浏览器“厄运的悸动”

    当使用 Comet 或 Ajax Long Pull 技术时 通常使用 iframe 当 iframe 等待长连接关闭时 浏览器正在旋转其 throbber 进度 加载指示器 一些网站 例如 etherpad com 设法让它停止 他们是如