提交javascript有轻微延迟

slight delay onsubmit javascript

本文关键字:延迟 轻微 javascript 提交      更新时间:2023-09-26

你好,我有一个聊天系统,工作正常,但当用户点击提交消息不立即显示在发送方有一个轻微的延迟。有时它会在接收方出现在发送方之前。对改善这种情况有什么帮助吗?

      <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答案替换附加的文本。