动态网页缓慢地从数据库中检索数据

时间:2013-10-16 00:29:51

标签: javascript php jquery mysql ajax

我正在制作一个动态网页,可以非常频繁地从数据库中检索大量数据,至少每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;


            }
        });

任何人都可以提供一些解决此问题的建议吗?我应该付钱并获得更好的账户吗?

感谢。

1 个答案:

答案 0 :(得分: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中。我们不会将async设置为false

,因此您不会被冻结