我如何加载一个php包含到一个页面与ajax,而页面正在加载


How do I load a php include into a page with ajax whilst the page is loading

我有一个php包括需要一段时间来加载,因为php必须获取大量的数据。我不想拖慢整个网页的加载速度等待这个include那么如何用ajax加载这个include呢?我不希望ajax是由一个按钮点击触发,我只是希望它加载包含作为页面正在加载,所以如果你看看我的例子下面的"一些更多的html内容"将显示,而include .php仍在加载。

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

如果您正在使用jQuery,您可以使用其中一个ajax调用从include.php加载html。例如,可以使用load()函数。

例如:

<div id="content"></div>
<script>
$(document).ready(function() {
    $("#content").load("/yourpath/include.php");
});
</script>

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

<div id="include"></div>
$(function(){
    $("#include").load("include.php");
});

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

我使用一些非常技术性的页面,偶尔他们需要长达0.06秒的加载,虽然通常他们更快。这是在一个非常便宜和肮脏的服务器,极其缺乏资源。用户不会认为这是延迟,因为下载内容的时间比PHP提供内容的时间要长得多。

扪心自问:

  • 列表项为什么我的代码需要这么长时间加载?
  • 我是否需要包含所有的代码?有更好的方法吗?我应该删除不经常使用的代码来分离包含(或使用类批量加载工具在PHP)?

也许简化你的代码会更好,这样它运行得更快。如果您不打算提供您正在获取的所有数据,也许您根本不需要获取它。如果你要上菜,那就要花时间,而不是加工时间。