我有一个由 PHP 呈现的复杂页面,并希望通过 AJAX 长轮询使页面的所有元素保持最新。是否有某种通用/聪明的方法来设计基础设施来支持这一点,而不必手动指定要更新的每个元素?只是在寻找想法。谢谢!
5 回答
4
使用 jQuery,我将发送一个逗号分隔的 jQuery 选择器列表以更新到服务器。服务器最终将通过读取这些选择器并生成 HTML 以填充与选择器匹配的元素来响应:
$.get("/updater", { elementsToUpdate: "#someDiv,#someTable,#someOtherElement"}, function(json) {
$.each(json, function(k, v) {
// the key is the selector, the value is the
// HTML to set to that (or those) element(s):
$(k).html(v);
});
}, "json"); // we are expecting the server to return JSON
服务器将通过向客户端发送 JSON 来响应,其结构如下:
{"#someDiv":"this is some HTML to fill up div with ID someDiv","#someOtherElement":"here is some more HTML","#someTable":"here is some more HTML"}
于 2010-02-26T16:27:04.880 回答
0
将您的页面元素结构保持为私有数据,并让公共元素更新它们
var page = (function(){
var private_data = {
//json
};
return {
workOnData : function(){//process the data}
}
})()
这是保持页面数据安全流畅的好方法。
于 2010-02-26T16:22:18.770 回答
0
您可以轮询返回页面的 json 编码结构的页面,例如:
var page = {
'elem1': {
'html': '<div>... ',
'update': True
},
'elen2': {
'update': False
依此类推,然后更新必要的内容,只有一个民意调查。
于 2010-02-26T16:11:28.207 回答
0
可能会为所有要通过 ajax 更新的元素添加一个特殊的类,并且您还可以在其他一些属性中编码额外的数据,例如
<a class="ajaxUpdate" data="{'a':'json or whatever', 'put whatever here':'ok'}">test</a>
然后使用 jquery,您可以轻松地提取该数据并对其进行评估,并在您的 ajax 中使用它
于 2010-02-26T16:12:10.903 回答
-1
如果我是你,我会使用 jQuery 来做到这一点:那么你可以做类似的事情......
$('div.updateThisClass').css('color','#fff')
于 2010-02-26T16:19:08.420 回答