【问题标题】:Javascript slow-load techniqueJavascript 慢加载技术
【发布时间】:2011-04-22 23:36:18
【问题描述】:

我正在努力学习 JavaScript 中的慢速加载技术(如下所述:http://www.obviously.com/tech_tips/slow_load_technique),用于制作近实时聊天应用程序等。

我知道 facebook 也使用它来进行聊天。它首先调用这个url:http://0.1.channel.facebook.com/x/a_bunch_of_parameters,它会徘徊很长时间,连接:keep-alive。然后它突然返回这个javascript:

for (;;);{"t":"continue"}

我没有登录聊天,所以它显然不包含任何聊天数据,但我想知道处理结果的周围 javascript 会是什么样子。可能它会解析 json 并看到 t-key 具有 continue 的值。无限 for 循环会完成什么?

facebook 页面有一个巨大的 javascript 调用堆栈,所以我无法通过它。有人能猜到还是有人知道?提前致谢!

【问题讨论】:

  • 阻止其他人评估代码? :)...我正在寻找解释,因为已经在某个地方看到过这个问题。当/如果我找到它,我会更新它。

标签: javascript


【解决方案1】:

请看这里:How to restrict JSON access?

无限循环是一种防止外部资源调用脚本的措施。如果我想从我的网站调用该链接,我必须使用

<script src="http://0.1.channel.facebook.com/x/a_bunch_of_parameters"></script>

这将立即启动无限循环。我无法了解 Facebook 返回的实际消息。

facebook 可以使用 XMLHttpRequest 从该地址提取并在评估响应消息之前解析出无限循环代码。由于跨域安全性,我无法从我的网站执行此操作。

对于 facebook 的使用,消息可能类似于

for (;;);
{ 
   "msg" : {

      "from" : "lincolnk",
      "content": "derp!"
    }
}

他们会解析出包含其他人编写的任何内容的 javascript 对象并将其显示给您。

【讨论】:

  • 哦,太好了,这很有意义 :D 真是聪明的把戏。正如您链接到的帖子所说,它不是防弹的,但它仍然很好。也与慢加载技术无关,但是嗯 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-08
  • 2016-05-23
  • 2013-08-24
  • 2011-10-29
  • 1970-01-01
  • 2016-08-10
  • 1970-01-01
相关资源
最近更新 更多