2012-01-10 9 views
2

私は自分のウェブサイトの情報を更新するスクリプトを持っています。毎秒別のページから日付をロードしています。しかし、私は同じ種類のことをしたいが、私のウェブサイトの別の部分としたい。ウェブページの異なる部分を動的に更新するにはどうすればよいですか?

これは、これまで使用してコードイムです:私は使用時間を表示するようにしたときに

<script type="text/javascript" charset="utf-8"> 

    $(document).ready(function() 
    { 
     $("#myDiv").load("response.php"); 
     var refreshId = setInterval(function() 
     { 
      $("#myDiv").load('time.php'); 
     }, 1000); 
    }); 

</script> 

と:

<div id="myDiv"> </div> 

それでは、どのように私は私の別の部分でそれを使用することができますウェブサイト?スクリプトをコード化して '#myDiv'を '#myDiv2'のようなものに変更するのが賢明でしょうか、それとも同じスクリプトで別の方法で行えるのでしょうか?

この状況のベストプラクティスを知りたいです。

ありがとうございました。

+0

@ragebunny:
のベストプラクティスについて

$(document).ready(function() { function insert_time_element(id) { // Cache the variables. See jQuery best practices var $myDiv = $(document).append('<div id="' + id + '"></div>'); // Your code (slighty altered): // Could also be cached. $myDiv.load("response.php"); var refreshId = setInterval(function() { $myDiv.load('time.php'); }, 1000); } insert_time_element('myDiv'); }); 

を、具体的にjQueryに、jQueryのベスト・プラクティスに関するNetTuts +の記事を読むことは、それだけにページを呼び出すことをお勧めし言わないだろう時間がある、私はそれを一度と時間を取ることをお勧めします渡された時間を追加するにはjavascriptを使用してください。これは現実的ではありませんか? – netadictos

+0

@netadictosうん、それは意味をなさない。ありがとう。 – ragebunny

+0

@piskvor私はコードで作業してオリジナルを貼り付けていますが、divを変更すると、これは新しい機能のために機能しますが、その良い練習か、それとももっと良い方法があれば。時間はJSで行うことができますが、他の部分はデータベースから常にリフレッシュする必要があります。 – ragebunny

答えて

8

個人的に私はより宣言スタイルを好むので、

HTMLのようなもの:

<div data-update="newContent.php" data-refresh-interval="500"></div> 

Javascriptを:

$('[data-update]').each(function() { 
    var self = $(this); 
    var target = self.data('update'); 
    var refreshId = setInterval(function() { self.load(target); }, self.data('refresh-interval')); 
}); 

は、このアプローチは、すべての情報は、ページの更新命を識別することを意味HTMLの場合は、何が起こるかを把握するためにビューを調べるだけでよい場合は、ページを推論しやすくなります(うまくいけば!)。また、同じマークアップを適用するだけで済むため、他のページに機能を追加する方がずっと簡単です。

+0

+1良いアイデア... – 472084

+0

これはhtml5(私はw3c html検証を参照しています)に対してのみ有効であることを常に心に留めておくことをお勧めします。 – netadictos

+0

ありがとうございます。 – ragebunny

1
$("#myDiv").load("response.php"); 
$("#myDiv2").load("response2.php"); 
var refreshId = setInterval(function() 
{ 
    $("#myDiv").load('time.php'); 
    $("#myDiv2").load('time2.php'); 
}, 1000); 

このように私はうまくいくはずです。

1

一般的には
ここでのベストプラクティスは、外部のjsファイルにそのコードを格納し、必要なすべてのページにロードすることです。

時間を表示する要素(load.phpから返されたマークアップを使用する)の場合:
ページでロードするときに#myDiv要素を挿入してこの機能を関数で収集すると、以下の通り:http://net.tutsplus.com/tutorials/javascript-ajax/14-helpful-jquery-tricks-notes-and-best-practices/

関連する問題