【问题标题】:Best way of loading/including content? (jQuery's load() vs. PHP's include())加载/包含内容的最佳方式? (jQuery load() 与 PHP include())
【发布时间】:2013-12-19 08:29:09
【问题描述】:

将 html 页面的内容加载到另一个网页的最佳方式是什么? 假设我有一个首页(index.php),我可以在其中选择 PHP 和 javascript,而且我不必关心兼容性、移动用户等。

过去,我使用 php 中的 include()/include_once() 函数来执行类似的操作,将我放在 content.html 中的内容加载到我的 div 容器中index.php:

<div id="content">
    <?php include("content.html"); ?>
</div>

但我可以使用 javascript/jquery 做几乎相同的事情:

$("#content").load("content.html");

但是最好的方法是什么? 我知道您无法真正将 PHP 与 javascript 进行比较。通常我只会将 javascript 用于用户界面的东西。尤其是使用 jquery 的 load() 函数,它非常容易将文件中的内容加载到 div 中并替换 PHP 的 include()。但仅仅因为它可以做到,并不意味着应该做到。

有什么最佳实践吗?使用 javascript 的优点/缺点是什么?

【问题讨论】:

  • 这不是关于语言,而是关于服务器端包含 (PHP) 或客户端 (JavaScript)。
  • Jquery 的方法会导致对您的服务器的额外请求...
  • 如果您正在准备内容服务器端,则使用包含,如果使用客户端负载,但使用负载不是一个好习惯..
  • 如果有人禁用了 JS,则内容根本不会加载
  • @Class 我想我们已经过去了。如果他们禁用了 JS,他们应该只会收到一条消息“请关闭设备”

标签: javascript php jquery html


【解决方案1】:

假设您包含的 HTML 文件不是动态的(不是在 PHP 中创建的,只是静态标记),那么 PHP 包含是首选方法。

通过使用 PHP include(),内容将在页面首次加载到浏览器时出现在页面上,而 $.load() 调用将在浏览器读取页面数据后加载,然后 javascript 开始呈现,然后加载jQuery,然后异步触发$.load()。

另外,$.load() 需要 jQuery,因为 PHP include() 是一个内置函数,比加载 jQuery 和通过 $.load() 触发异步请求要快得多;

如果您需要在页面首次呈现后加载内容(即作为用户交互的结果),则需要 $.load()。

我建议您阅读有关同步(即 PHP include()、$.ajax({ asynch: false }))和异步(即 $.load()、$.ajax())资源加载的区别,或网络请求。

您可以在这里查看:http://www.w3schools.com/ajax/ajax_intro.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多