このプロジェクト全体とコードは、後でPHPをホストするMySQLサーバーにホストされます。jQuery ajax、データの追加が機能しますが、データは他のエンド(コンピュータ/ユーザ)に表示されますか?
コード:
$(document).ready(function(){
console.log('hello');
$('input[name="nm_submit_comment"]').on('click', function(e){
e.preventDefault();
var frm = $(this).closest("form");
var frm_id = frm.attr("id");
var frm_id_splitted = frm_id.split("_");
var frm_id_splitted_2 = frm_id_splitted[2];
var frm_serialized = frm.serialize();
$.ajax({
url: "save-comment.php",
method: "POST",
data: frm_serialized,
success: function(data) {
data = JSON.parse(data);
$('div#id_div_comment_' + frm_id_splitted_2).append('<div class="cl_div_comment_content">' + data.nm_textarea_comment_content + '</div>');
$('textarea.cl_textarea_comment_content').val("");
}
});
});
});
jQueryのAjaxが正常に動作しています。データをデータベースに保存し、divにデータを追加します。私の質問です:データを追加した後、データは他のエンド(コンピュータ/ユーザー)に利用可能/可視になりますか?またはデータを追加した後、10秒ごとにコメントdivを読み込むために、setInterval関数を追加する必要があります。 10秒後に誰かがコメントした場合、そのコメントは他のユーザーに見えるようになります。それは すべてのコメントdivをロードするオーバーヘッドがあるかもしれません。
Facebookのステータスの更新と同じシナリオがあります。誰かが自分のステータスやコメントを更新すると、他のすべての友達にコメントが表示されます。このような例は、スタックオーバーフローの通知にあります。誰かが答えたりコメントしたりすると、すぐに通知されます。どうしたの?他のユーザーにデータを表示させるにはどうすればよいですか?
このシナリオの説明は高く評価されます。
これは、リアルタイムのデータ更新を行うために 'ソケット 'によって行われます。ソケットなしでは、 'ajax'を使う必要がありますが、サーバを10秒間隔で呼び出すので、サーバに負荷がかかります。 –
これが役に立つかもしれないhttp://www.smashingmagazine.com/2012/05/building-real-time-commenting-system/ –
はい、setIntervalは10秒ではないと私は思います。 setIntervalをすべてのdivに設定するのは良い考えではありません。 – shibly