Javascript慢加载技术

时间:2010-10-08 16:10:40

标签: javascript

我正试图在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 callstack,所以我无法通过它。有人猜或有人知道吗?提前谢谢!

1 个答案:

答案 0 :(得分:2)

见这里: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对象,其中包含其他人写的内容,并将其显示给您。