Meine Frage ist, was ist besser, Kommentar System wie auf StackOverflow, Ich meine ich Anfrage von meinem Browser zu tun und jeder wird diesen Kommentar (oder in anderen Browser) ohne erfrischende Seite wie einige sehen Plaudern.Ajax Beitrag Kommentar wie StackOverflow
Meine Lösung war setInterval
zu verwenden, aber ich denke, es gibt einen anderen Weg geben muss
$(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) ist eine schönere Lösung als setInterval. –
Das Hinzufügen von 'setInterval' ohne vorheriges Löschen jedes' # send' klingt wie eine gefährliche Idee. 'var tot = parseInt (max - cnt);' statt einfach 'var tot = max - cnt;' sieht seltsam aus. 'parseInt (tot) <= 0' anstelle von' tot <= 0' ist auch seltsam. – Regent
Wenn Sie mit .Net-Technologien vertraut sind, versuchen Sie es in SignalR bietet gute Lösungen für Sie. –