2013-10-16 96 views
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; 


      } 
     }); 

任何人都可以提供一些建議如何解決這個問題?我應該付款並獲得更好的帳戶嗎?

謝謝。

+0

不管數據庫查詢花費的時間,AJAX調用不應該被凍結你的頁面。這很可能是你的問題在別的地方。 – xbonez

+0

真的沒有足夠的信息給任何人來幫助你。你應該說明你使用的是什麼Ajax調用,jQuery或純JavaScript?哪個部分慢?你正在運行什麼查詢?什麼是由AJAX返回? JavaScript處理返回的數據是什麼?等等...... – iWantSimpleLife

+0

謝謝你們兩位,請查看最新信息。 –

回答

0

有一個Ajax刷新每3秒,你的JavaScript &阿賈克斯必須是這樣的:

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()功能阿賈克斯內。您將無法獲得凍結,因爲我們不設置asyncfalse