gmail是如何使用ajax的

How does gmail use ajax?

本文关键字:ajax 何使用 gmail      更新时间:2023-09-26

查看firebug,gmail发送GET请求以获得类似于:

while (true); &&&START&&&{"Success":true,"Body":{"Contacts":"[[,[,,'"83473f5sc6b17e0'",,[[,1,'"1'"]'n]'n[,,,[,,[,[,,,,,,,,,,,[[,1]'n
...
} &&&END&&&
  • 这些阵列是什么?这是某种RPC吗
  • 客户端代码是如何使用它们的?更具体地说,闭包库将如何使用它们
  • 与普通json和REST相比,这种方法的优势是什么

看起来像普通的JSON,很可能是对RPC的响应,但主体以某种方式编码(可能是为了减少大小,从而减少带宽使用)。while (true);位是为了避免使用指向RPC端点的脚本标记跨站点访问数据——通过在脚本到达有趣的私人信息之前崩溃脚本,可以防止恶意站点使用数据。在去掉开始和结束标记之外的所有内容后,解析将使用JSON.parse或类似的方法。

如果你正在运行像gmail这样的大型网站,并且可以控制客户端,那么这种压缩编码会很有帮助。然而,REST对第三方开发人员非常有用,因为它更容易调试(和文档!)。然而,对于任何允许GET并在响应中携带敏感数据的API,while(true)位都是必不可少的。