Мой вопрос в том, что лучший способ сделать систему комментариев, например, на StackOverflow, Я имею в виду, что я отправляю запрос из своего браузера, и каждый будет видеть этот комментарий (или в другом браузере) без обновления страницы, чат.Комментарий к сообщению Ajax как StackOverflow
Мое решение было использовать setInterval
, но я думаю, что должен быть другой способ
$(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. –
Добавление 'setInterval', не очищающее предыдущий на каждом' # send', звучит как опасная идея. 'var tot = parseInt (max - cnt);' вместо простого 'var tot = max - cnt;' выглядит странно. 'parseInt (tot) <= 0' вместо' tot <= 0' также странно. – Regent
Если вы знакомы с. Net-технологиями, попробуйте в SignalR, вы получите хорошие решения для вас. –