【问题标题】:Ajax calls performance with php serverAjax 使用 php 服务器调用性能
【发布时间】:2016-02-13 04:18:17
【问题描述】:

当我必须从我的服务器获取一些东西并将一些值传递给它时,我目前正在使用$.post('myserver/formhandler.php', { 'v' : value }),并且在我的 formhandler.php 文件中我有以下内容:

require_once("mainclass.php");
require_once("config.php"); 

if(isset($_POST['v'])) {
    $mainclass->FunctionA($_POST['v']);
}
if(isset($_POST['s'])) {
    $mainclass->FunctionB($_POST['s']);
}

等等。问题是有时我想在不传递任何值的情况下加载一些东西,我怀疑它是否更快使用相同的 $.post() 函数并传递一个变量只是为了能够触发同一个文件中的某个函数,或者如果最好使用 $.load() 并为每个函数创建一个特定文件,例如 $.load('LoadFunctionC.php'),其中 LoadFunctionC.php 类似于:

require_once("mainclass.php");
require_once("config.php"); 

$mainclass->FunctionC();

它会减慢我的网站,例如多次调用 mainclass.php 和 config.php 吗? 谢谢!

【问题讨论】:

标签: php jquery ajax performance


【解决方案1】:

如果您查看$.load 文档,您会看到$.load,就像$.post$.get(以及其他一些)实际上只是调用$.ajax。因此,它们之间不应该有任何显着的性能变化。

执行此操作的更好方法可能是为每个端点提供自己的文件。这样你只需在 JS 中选择要命中的端点。当您可以让用户的浏览器为您完成工作时,为什么还要让您的服务器工作(并使您的脚本更复杂)!

var url = '';
switch (someCase) {
  case 'v':
    url = 'doThingV.php';
    break;
  case 's':
    url = 'doThingS.php';
    break;
  default:
    url = 'doThingC.php';
}

$.ajax({
  url: url,
  ...
});

【讨论】:

  • 谢谢!这就是我想要的!我只想了解最后一件事:由于每个文件都有 require_once,它不会减慢我的服务器,因为它必须为每个调用加载文件吗?
  • 我认为this is a good thread 供您阅读。它有点过时了,但你会得到大致的想法。
  • 感谢您给我指路。就是这样。
猜你喜欢
  • 2012-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多