整个项目和代码将托管到php,mysql托管服务器以后.
码:
$(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('' + data.nm_textarea_comment_content + ''); $('textarea.cl_textarea_comment_content').val(""); } }); }); });
jQuery ajax工作正常.它将数据保存到数据库,然后将数据附加到div.我的问题是:在附加数据后,数据是否可用/可见到另一端(计算机/用户)?或者在追加数据后,我必须添加set setInterval函数来每10秒加载一次注释div.因此,如果有人在10秒后发表评论,则评论将对其他用户可见.加载所有注释div可能有开销.
我们看到Facebook状态更新的相同方案.当有人更新他的状态或评论时,其他所有朋友都可以看到评论.我们在stackoverflow通知中看到了这样的例子.如果有人回答或评论,我们会立即收到通知.怎么做?如何让其他用户看到数据?
对此场景的解释将受到高度赞赏.
通过使用setInterval函数,所有用户必须每10秒重新加载注释部分,这是一种不好的做法,而不是服务器的最佳设置.然而,它是最简单的解决方案.
最好的解决方案是套接字,套接字会在一个用户评论时通知其他用户,反之亦然.在http://www.socket.io/上有一个战利品.您必须创建一个应用程序,其中所有用户都会监听指定的功能,如果有一个用户注释,则会通知其他用户.这是一种解决此问题的轻量级方法,因为只有一个用户注释(向函数发送信号)时才会更新注释.
希望这可以帮助.干杯