Soruma göre soru, StackOverflow, gibi yorum sistemi yapmak için daha iyi bir yoldur. Tarayıcımdan istek gönderiyorum ve herkes bu sayfayı (veya başka bir tarayıcıda), bazılarının sohbet.Ajax gönderi yorumuyla StackOverflow
Çözümümün setInterval
kullanmak, ama
$(document).ready(function() {
get();
$('#send').click(function() {
$.post('http://localhost/mvc.com/comment/post', {
n_id: parseInt(newsId),
user_id: $('#uid').val(),
text: $('#content').val(),
token: $('#token').val()
}, function (ret) {
if (ret.comm.err) {
$('.f').empty().prepend('<li id=e><h3 style="color: red">ERROR</h3></li>');
return false;
}
get();
});
setInterval(get,3000);
});
$('#content').keypress(function(e){
var key = e.which;
var cnt=$(this).val().length;
var max=100;
var tot=parseInt(max-cnt);
if(key >= 33 || key == 13 || key == 32) {
if (parseInt(tot) <= 0) {
e.preventDefault();
}
}
});
function get() {
$.post('http://localhost/mvc.com/comment', {get: parseInt(newsId)}, function (ret) {
$('.f').empty();
for (var key in ret.comm) {
$('.f').append('<li class=c id=' + ret.comm[key].id +
'><span>' + ret.comm[key].name + '</span><hr><br>' + ret.comm[key].text + '</li>');
}
});
}
[WebSockets] (https://developer.mozilla.org/en/docs/WebSockets) setInterval daha güzel bir çözümdür. –
'setInterval 'ifadesini, her' #' 'mesajında bir öncekini temizlemeden eklemek tehlikeli bir fikir gibi görünür. var tot = parseInt (max - cnt); 'yerine basit' var tot = max - cnt; 'garip görünüyor. 'tot <= 0' yerine parseInt (tot) <= 0 'da tuhaftır. – Regent
.Net teknolojilerine aşina iseniz, SignalR'de deneyin, sizin için iyi çözümler sunar. –