使用AJAX加载PHP文件的HTML文件?

时间:2013-12-15 21:54:03

标签: javascript php jquery html ajax

做这样的事情会更好:

//PHP FILE:
<html>
  <body>
    hi
    <?php
      //load first 50 comments from mysql
    ?>
  </body>
</html>

或者这个:

//HTML FILE
<html>
  <body>
  hi
  <div id="hello">
  </body>
</html>

//JS file:
$(document).load(function() { //or whatever it is if not 'load', I can figure it out
  $.ajax( /*php call, receive JSON of the mysql data*/ );
});

我正在寻找速度和空间效率。哪个更好 - 有一个PHP文件发送整个HTML文件,或者有一个HTML文件以JSON格式发送数据?

提前致谢。

4 个答案:

答案 0 :(得分:3)

我认为你的问题对于SO来说过于通用,但这是我的两分钱。

如果您在此页面上唯一要检索评论列表,请务必使用第一个选项。您将减少一个请求,这是您应该保留的时间。 但是,只要您需要对此评论列表进行实时操作,我们就说updatecreatedelete,您可以轻松地看到这些请求只会让您回复新数据,而不是周围的所有内容以及尚未修改的内容。 每次调用操作时,您都可以选择刷新页面并刷新其内容的一部分。

所以我会这样想:

  • 如果您有一些需要快速显示的数据,请使用第一个选项。内容将与页面一起显示。
  • 只要您需要执行仅影响页面一小部分的操作,为什么还要再次检索整页?最快的选择是AJAX通话。

因此,将两者结合起来,并针对每种情况,选择最适合您需求的那种。

匹配您的示例

我会这样做:

echo您网页的完整评论列表。 现在显示列表,就像您需要的那样。

但是AJAX调用最适合:

  • 添加新评论
  • 更新现有的
  • 检索新评论
  • 删除现有文件。

删除通常是一个很好的例子。如果用户删除了评论,您可以立即隐藏它,并随时发送请求。因此,用户实际上会将其视为real-time,比您可以做的任何事情都快。

P.S。 :在我最近使用AngularJS的应用程序中,我实际上会对AJAX请求所有内容。但背后有一个很好的理由:通过这种机制,我可以使用缓存,因为HTML页面的内容是static。 静态页面将更快地发送,然后内容将被加载到正确的位置。但这种选择需要进行基准测试 此外,重要的是,如果你走这条路,你必须意识到爬行机器人(如GoogleBot)将无法加载你的内容。

答案 1 :(得分:0)

让php为你回应。两种方法基本上都有php回显第二步,只是通过ajax。

答案 2 :(得分:0)

不知何故,我认为使用直接的PHP和MySQL比jquery,json,mysql和ajax更快更简单。但我不认为这些天的速度差异会很明显......

最好选择适合您的应用程序和编码风格的系统。

答案 3 :(得分:0)

嗯,一般来说,第二个选项的速度会慢一些。因为它会再做一次HTTP查询。如果您的数据库不大,那么使用简单的PHP脚本