我要寻找一个解决方案,使PHP页面将加载在它的所有其他信息说的内容/图像如有然后做一个动作的动作,其将需要一些时间来完成并显示其结果。我想PHP页面与其他信息第一次加载&然后做
由于操作需要很长时间,PHP页面加载速度太慢。我希望我的客户先看到页面,然后执行最后显示结果的操作。
我试图与ob_start()&平齐(),但没有成功。 它可能需要Javascript来启动我认为如此的操作。但我怎么能这样做。
我要寻找一个解决方案,使PHP页面将加载在它的所有其他信息说的内容/图像如有然后做一个动作的动作,其将需要一些时间来完成并显示其结果。我想PHP页面与其他信息第一次加载&然后做
由于操作需要很长时间,PHP页面加载速度太慢。我希望我的客户先看到页面,然后执行最后显示结果的操作。
我试图与ob_start()&平齐(),但没有成功。 它可能需要Javascript来启动我认为如此的操作。但我怎么能这样做。
您需要加载没有“慢速呼叫”的页面。在onload事件中或在网页末尾的脚本中,执行XHR呼叫到服务器以获取慢速数据。默认情况下该调用是异步的,因此用户可以在等待呼叫返回的同时与网页进行交互。在这一点上,您将获取数据并使用JavaScript将其转换为HTML。
你可以给一些链接,做相同的引用。以便我可以理解工作并在我的工作 – 2010-12-17 20:29:30
这是一个PHP的操作?由于php是一种服务器端语言,它在用户收到http响应之前执行。所以你必须先建立网站。将其发送给用户。比对需要执行操作的脚本发出新的请求(例如使用ajax)。这是应执行的订单代码。
一些handly链接。
你的onload使用,在很短的时间控制定时事件。这将让屏幕画出来。
当事件触发时,使用AJAX技术启动您的漫长过程。
您无法长时间尝试在服务器上运行进程。经过一段时间(通常为300秒),一个失控计时器将杀死你的服务器线程。为避免这种情况,您的漫长过程必须使用轮询技术,或者不在正常的Web服务器环境下运行。
如果要超过20秒或30秒运行,然后保存某种形式的会话状态,并返回一个“工作”的答复。在关闭下一个周期之前,使用回复更新用户的进度。这会加载并定位自己的会话数据,并且运行很短的时间。
警告 - php会仔细地串行化会话数据的所有访问权限,所以当服务器处理一个循环时,用户发送的任何内容都将等待该循环结束,然后才能处理。
jQuery让这非常容易,因为这样...
<script type="text/javascript" src="jquery-1.4.4.min.js"></script> <!-- Put this in your web page's head -->
<script type="text/javascript">
$(function() {
$('wherever-you-need-the-resulting-html-to-go').html('<img src="loading-image.gif" alt="Loading" />');
$.ajax({
url: 'wherever-your-slow-code-is.php',
success: function(msg) {
$('wherever-you-need-the-resulting-html-to-go').html(msg);
}
});
});
</script>
一样始终。在'onLoad'中。 – 2010-12-17 20:22:23
您的意思是用JavaScript。请指定 – 2010-12-17 20:23:49
是的,Javascript(AJAX)是这种功能的常用选项。我可以推荐查看jQuery。与自己编写Ajax相比,这使得Ajax变得更容易。 – 2010-12-17 20:32:16