0

我正在制作一个动态网页,它非常频繁地从数据库中检索大量数据,例如至少每 3 秒一次。

我使用 XAMPP 在本地测试了我的网页和数据库。它完美地工作。但是,在我将所有内容上传到 000webhost(我的免费帐户)后,它变得非常慢。检索数据时,我的网页甚至冻结(我无法滚动页面,甚至什么都不做,只能等待数据传输。)。

我使用了一个 setTimeout 函数,它调用了几个 ajax 命令来从我的数据库中读取数据。我已经优化了数据容量,但页面仍然冻结。我还尝试禁用大多数 ajax 命令,只留下一个。加载时,页面就像眨眼一样冻结,但无论如何它仍然冻结......

我的大多数 ajax 命令如下所示,它只是从我的数据库中检索数据并更新我网页上的相关字段。一些 ajax 命令使用 $.parseJSON() 因为我需要表格中的整行。

$.ajax({
            type: "GET",
            url: "get_balance.php",     
            data: {wherematch: localStorage.login_user},        
            dataType: "html",   //expect html to be returned    
            async:false,            
            success: function(response){

                document.getElementById('balance').innerHTML = response;


            }
        });

谁能提供一些建议如何解决这个问题?我应该付款并获得更好的帐户吗?

谢谢。

4

1 回答 1

0

要每 3 秒刷新一次 ajax,您的 javascript 和 ajax 必须是这样的:

function get_data(){
$.ajax({
            type: "GET",
            url: "get_balance.php",     
            data: {wherematch: localStorage.login_user},        
            dataType: "html",   //expect html to be returned            
            success: function(response){
                document.getElementById('balance').innerHTML = response;
                setTimeout(get_data(),3000);
            }
        });
}
get_data();

setTimeout()函数放在ajax里面。你不会被冻结,因为我们没有设置asyncfalse

于 2013-10-16T01:39:55.483 回答