2013-10-30 55 views
0

其實我有10個PHP腳本(getlatest_t_s2.php,getlatest_h_s3.php ...)並在10個獨立的JavaScripts中執行它們並從回調函數中獲取一個id。讓我們看看我的意思。執行多個PHP腳本與多個回調

HTML

<td>Temperature</td> 
<td align="right"><div id="last_temp_s2"></div></td> 

JS

var scriptToExecute="getlatest_t_s2.php";//php script 

//any data that you might want to send to the php script. 
var data ='anyData'; 

//call ajax function 
makeAjaxRequest(scriptToExecute,data,callBack); 
function callBack(data){ 
    $('#last_temp_s2').html(data); 
} 

function makeAjaxRequest(url,data,_callBack,_failure){ 
    $.ajax({ 
     url: '../php/', 
     datatype:"php", 
     type:'get', 
     data: data, 
     success:function(data){ 
      _callBack(data); 
     }, 
     error:function(jqXHR, textStatus, errorThrown){ 
      if(!_failure){ 
       console.log(errorThrown); 
      } 
      else 
      { 
       _failure(jqXHR,textStatus,errorThrown); 
      } 
     } 
    }); 
} 

所以我的問題是不是執行10倍不同的JavaScript爲每個PHP腳本,是否有可能只執行一個JavaScript或至少低於10?

+0

您當前的代碼是否正常工作?無論如何,你必須做10次不同的調用,你可以減少代碼,但在後臺應該調用每個腳本,所以它們都是一樣的。 –

+0

是的,它正在工作。哦,好的 - 我認爲有一個更簡單的方法來做到這一點。 – user2877744

+1

難道你不能創建一個PHP文件,以JSON格式返回所有數據,然後用JavaScript解析它嗎?這樣你就可以減少一個請求的數量。 –

回答

0

我建議創建一個結構良好的PHP文件,其中,將所有數據處理成一個數組,然後將該數組(json encode($array))發送給您的JS,然後可以處理所有的JSON。

事實上,你會發送10請求可能10行文件創建很多服務器負載如果很多人訪問您的網站,因此一個文件將大大優化您的網站加載速度,這對SEO很好,以及您的訪問者不必等待1秒,可能需要2秒才能從服務器響應。

現代瀏覽器都有本地方法來解析JSON,jQuery也是這樣,所以你應該很好地通過JS以任何方式處理JSON數據。

學分 Guilherme Sehn已經明確指出了這一點。