jQueryを使ってページの一部をリロードしたい
画面全体でポーリング
検索フォームと検索結果が1つの画面になっており、定期的に検索結果を再検索するプログラムを作成しました。
$(function() {
searchHoge(hoge);
setTimeout(setReload, 20000);
}
function searchHoge(hoge) {
// 検索して画面に描写する処理
}
function setReload() {
// reloadメソッドによりページをリロード
window.location.reload();
}
20秒後に画面がリロードするように実装。
しかしこれだとページ全体がリロードされてしまい、検索フォームの状態がガチャガチャ動いたりしてあまり綺麗ではないと修正することになりました。
画面の一部でポーリング
$(function() {
setTimeout(function() {
$.fn.searchHoge(hoge);
}, 20000);
}
function searchHoge(hoge) {
// 検索して画面に描写する処理
}
単純に検索する部分をsetTimeoutにセットしてあげると、一定時間後にこの部分のみが実行され画面も変更されていることがわかりました。
コメント