我正在考虑在点击链接时使用ajax请求实现数据提取。我知道如何使用$ .ajax和其他xhr请求方法。我想知道以下案例的一些信息。我去了http://www.facebook.com/?sk=welcome 然后我点击“查找朋友”我发现网址已更改为http://www.facebook.com/?sk=ff,右侧的数据已刷新(没有回发),我的朋友已加载。我注意到的奇怪的事情是没有记录XHR请求(我正在使用FireBug控制台),我希望这样做。 FB如何处理任何XHR请求? FB是否使用iframe,如果没有,那么如何在没有回复的情况下使用新数据刷新页面的一部分而没有一些XHR请求(在这种情况下)。
客户端如何在没有回发的情况下调用服务器的数据,没有iframe且没有调用ajax?
答案 0 :(得分:0)
我不知道Facebook是如何做到的,但可以通过动态加载脚本元素来完成。例如:
function getFriend(id) {
var newScript = document.createElement("script");
newScript.src = "http://example.com/get_friend.php?id=" + id;
document.body.appendChild(newScript);
}
get_friend.php
返回:
document.getElementById("friend_box").innerHTML = "Your friend's details";
答案 1 :(得分:0)
Facebook使用隐形iFrame。
以下是其中一个的内容:
<html>
<head>
<title></title>
</head>
<body>
<span id="fbEmuTrackingSuccess">Success</span>
</body>
</html>
源是一个充满params的URL。所以我猜它会通过更改iframe网址发送所有Ajax请求,根据iFrame正文的内容加载iFrame时执行回调。