我有一个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)?
也许简化你的代码会更好,这样它运行得更快。如果您不打算提供您正在获取的所有数据,也许您根本不需要获取它。如果你要上菜,那就要花时间,而不是加工时间。