提交javascript有轻微延迟
slight delay onsubmit javascript
你好,我有一个聊天系统,工作正常,但当用户点击提交消息不立即显示在发送方有一个轻微的延迟。有时它会在接收方出现在发送方之前。对改善这种情况有什么帮助吗?
<script>
function submitChat(){
if ( form1.msg.value == ''){
alert('enter your message');
return false;
}
$('#imageload').show();
var msg = form1.msg.value;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function(){
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
// var Data = JSON.parse(xmlhttp.responseText);
document.getElementById('chatlogs').innerHTML;
$('#imageload').hide();
}
}
xmlhttp.open('GET', 'insert.php?&msg='+msg, true);
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.send(null);
document.forms['form1'].reset();
}
$(document).ready(function(){
$("#chatlogs").load('reg.php', function(){
$("#chatlogs").animate({ scrollTop: $("#chatlogs")[0].scrollHeight}, "fast");
window.setInterval(function() { var elem = document.getElementById('chatlogs'); elem.scrollTop = elem.scrollHeight; }, 340);
});
});
$(document).ready(function(e){
$.ajaxSetup({cache:false});
setInterval(function(){$('#chatlogs').load('reg.php')}, 2000);
});
$(document).keyup(function (e) {
if ($(".chatbox:focus") && (e.keyCode === 13 && e.shiftKey === false) ) {
submitChat();
e.preventDefault();
}
});
</script>
要做到这一点,您必须使用innerHTML将文本直接附加到页面上,而不必等待服务器使用Ajax调用的响应。因为服务器端的处理总是需要时间,所以答案也是如此。然后,当您得到答案时,您可以用ajax答案替换附加的文本。
相关文章:
- 可以简化嵌套的延迟Q Promises解析吗
- onclick函数需要双击,因为类分配延迟
- 更多延迟动画
- 对父作用域的指令更新延迟了一步
- 为JS函数添加延迟
- 带有延迟的循环每次应运行5次
- 关键帧之间的css3动画延迟
- 如何在有延迟的情况下对两个代码进行积分
- 如何为.css状态的更改添加延迟
- Angular.js延迟控制器初始化
- 在延迟时设置Whois脚本
- 如何在Javascript中延迟setInterval
- 如何在一个元素动画之后延迟
- 如何将一个方法延迟到另一个方法首先完成,javascript
- jQuery延迟了ajax调用的循环
- 如何减少在移动网络应用程序上播放声音的延迟
- 如何将GreaseMonkey中的XMLHttpRequest延迟到目标页面加载完成
- 提交javascript有轻微延迟
- 我能做些什么来阻止由这段代码引起的轻微页面延迟吗?
- dojotoolkit中DOM更新有轻微延迟