2011-07-25 170 views
1

我的网站运行simplexml命令从两个不同的网站获取数据,并且直到函数收到响应后才完成加载页面。直到PHP函数完成执行后,页面才会显示

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

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

希望这对你有意义。

回答

0

您有几个选项。

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

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

+0

所以我应该使用AJAX来执行该功能?这是一个好的开始。我可以尝试查看AJAX创建和函数执行的示例 – pr0tocol

+0

查看jquery =的.load()函数) –

2

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

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

0

您可以创建一个cron会聊到2个不同的网站和存储您定期,然后需要的数据时,你的页面运行它会谈论到的cron存放您起飞页的通信本地版本渲染时间

相关问题