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
次のように、ページのjsonエンコード構造を返すページをポーリングできます。
var page = {
'elem1': {
'html': '<div>... ',
'update': True
},
'elen2': {
'update': False
など、必要なものを更新し、ポーリングを1回だけ行います。
于 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 に答える
0
ページ要素の構造をプライベートデータとして保持し、それらを更新するためのパブリック要素を用意します
var page = (function(){
var private_data = {
//json
};
return {
workOnData : function(){//process the data}
}
})()
これは、ページデータを安全かつスムーズに保つための良い方法です。
于 2010-02-26T16:22:18.770 に答える
-1
もし私があなたなら、jQueryを使ってそれをしますo:それならあなたは次のようなことをすることができます...
$('div.updateThisClass').css('color','#fff')
于 2010-02-26T16:19:08.420 に答える