我正在观看 Chrome 开发者工具上的网络监视器,了解 Facebook 如何更新其新闻源中的内容。
来自 AJAX 的所有响应均以以下内容开头:
for (;;);{"__ar":1,"payload":[]}
for(;;);
部分在做什么?
这是他们自定义 JS 框架的一部分吗?或者这是本地人,只是我不熟悉的东西?
当我预览它时,它似乎正在作为 json 对象加载。
最佳答案
这似乎是内容保护 (DRM) 方面的蹩脚尝试。 for()
循环基本上是无限的。其意图似乎是,任何天真地使用 JavaScript 获取 AJAX 请求的人最终都会得到因无限循环而挂起的代码。
for()
循环还会为标准 JSON 解析器生成错误,例如 jQuery 或 YUI 甚至 JSON.org 中的解析器。要使用该请求,您需要编写自己的解析器或首先从请求中删除 for()
循环。
这就是为什么我说这看起来很蹩脚。因为用一些代码从字符串中删除 for()
循环并不困难。
关于javascript - 好奇 : what is this syntax that Facebook's polling services is using during the callback,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7564309/