gmail是如何使用ajax的
How does gmail use ajax?
查看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)
位都是必不可少的。
相关文章:
- 如何在AJAX中使用AJAX
- 在AJAX中使用window.location.replace'成功'回调
- 如何在Razor MVC 5.2.3 Ajax中使用多个提交按钮
- javascript中是否有更标准化的方法来转换(序列化)非表单数据以与ajax一起使用
- 不确定我在PHP AJAX中使用的是什么开发模式
- Ajax在使用onclick选项时无法处理HTML表单中的提交按钮
- 如何在 ajax 中使用 javascript 发送多个数据并将其重定向到欢迎页面
- 我怎么知道 .ajax 是使用 Get 还是 POST
- JQuery AJAX - 如何使用方法 GET 调用刷新/重新加载页面
- 如何在jQuery AJAX中使用参数调用PHP函数
- 为什么不允许在jquery数据表服务器端处理ajax中使用成功
- AJAX没有使用成功处理程序函数
- ajax 可以使用绝对 url 来调用 Web 服务吗?
- AJAX请求使用PHP
- 如何通过AJAX Solr使用proxyUrl参数
- 如何在Ajax中使用sharethis
- ajax脚本使用onClick提交表单时出现问题
- 是否可以在Ajax中使用代理
- ajax如何使用json
- 在ajax中使用两个URL