2013-10-30 28 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已经明确指出了这一点。