在PHP函数完成执行之前,页面将不会显示

时间:2011-07-25 15:56:03

标签: php

我的网站运行simplexml命令从两个不同的网站提取数据,并且在功能得到回复之后才完成加载页面。

这实际上只有1-2秒,但是当常规网页需要几毫秒才能加载时,这是显而易见的。

由于此代码已经在PHP函数中,我怎样才能最有效地加载页面并在之后执行代码?我假设在页面加载时,函数也会执行,只是浏览器本身不会刷新并完成加载直到执行完成。

希望这对你有意义。

4 个答案:

答案 0 :(得分:2)

不幸的是,php在加载页面之前在服务器端运行。这就是它允许它向页面提供动态生成的内容的原因。如果你想加载页面然后运行php函数,你应该检查AJAX。

Ajax使用javascript调用外部函数并更改页面上的内容而无需重新加载。

答案 1 :(得分:1)

创建网页而不调用任何这些功能。向该页面添加一些JavaScript,以向调用函数的PHP脚本发出AJAX请求,然后将返回的结果添加到页面中。

答案 2 :(得分:0)

您有几个选择。

  1. AJAX调用 - 一旦重要的东西加载,让JS向服务器发送单词,它需要做一些完成加载的过程。 (rennekon和Dan Grossman似乎已经提出了这个建议。)
  2. iframe类似于AJAX,但它不需要JS。放置在HTML的底部,它可以让服务器知道需要完成的事情,而不必担心任何其他渲染。 (这实际上也可以通过任意数量的发出HTTP请求的标签来实现.img攻击因为容易受到攻击的网站而臭名昭着。)
  3. 产生一个新线程。这有点困难/烦人,但它不依赖于用户反馈来完成处理。您也可能无法在大多数服务器上执行此操作,但这是在后台完成处理的一种方法。

答案 3 :(得分:0)

您可以创建一个与2个不同网站对话的cron,并定期存储您需要的数据,然后当您的页面运行时,它将与cron存储的本地版本通信,从而使页面呈现时间之外的通信< / p>