3

我有一个 php 包含需要一段时间才能加载,因为 PHP 必须获取大量数据。我不想减慢整个网页加载等待这个包含的速度,那么如何使用 ajax 加载这个包含?我不希望通过单击按钮触发 ajax 我只是希望它在页面加载时加载包含,这样如果您查看下面的示例“更多 html 内容”将在包含时显示。 php 仍在加载中。

<html>
<head>
</head>
<body>
    Some html content
    <script>
        Ajax load 'include.php';
     </script>
    Some more html content
</body>
</html>
4

3 回答 3

5

如果您使用 jQuery,您可以使用他们的 ajax 调用之一从 include.php 加载您的 html。例如,您可以使用load()函数。

例如:

<div id="content"></div>

<script>
$(document).ready(function() {
    $("#content").load("/yourpath/include.php");
});
</script>
于 2013-06-05T07:36:59.547 回答
1

使用 jquery ,在 DOM 准备好之后加载 php(在渲染之前)

<div id="include"></div>
$(function(){
    $("#include").load("include.php");
});
于 2013-06-05T07:40:36.313 回答
0

如果你没有使用 jQuery,你可以使用 document.onload 来触发你的 AJAX 函数。我从来没有尝试过这是公平的,因为大多数 PHP 都快如闪电,我担心如果页面只是部分加载会发生什么。您可以使用 document.ready 来避免这种情况,但您只是在等待页面加载。请记住,您通过 HTTP 对每个服务器的每个浏览器的连接是有限的,因此您可能会发现这最终不会加速任何事情。

我使用一些漂亮的技术页面,有时它们需要长达 0.06 秒的时间才能加载,尽管它们通常更快。这是在资源极其匮乏的非常便宜且令人讨厌的服务器上。用户不能将此视为延迟,因为下载内容所需的时间比 PHP 提供服务所需的时间要长得多。

问你自己:

  • 列表项 为什么我的代码需要很长时间才能加载?
  • 列表项 我是否需要包含中的所有代码?
  • 列表项有没有更好的方法?
  • 列表项 我应该删除不常用的代码来分隔包含(或使用 PHP 中的类批处理加载工具)吗?

也许最好简化你的代码,让它运行得更快。如果您不打算提供您正在获取的所有数据,那么您可能根本不需要获取它。如果你要为它服务,那就是需要时间,而不是处理。

于 2013-06-05T07:51:37.677 回答