Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
页面赢得';直到PHP函数完成执行后才显示_Php - Fatal编程技术网

页面赢得';直到PHP函数完成执行后才显示

页面赢得';直到PHP函数完成执行后才显示,php,Php,我的网站运行simplexml命令从两个不同的网站提取数据,直到函数得到响应后才完成页面加载 这实际上只需要1-2秒,但当普通网页需要几毫秒才能加载时,这一点很明显 由于这段代码已经存在于PHP函数中,如何才能最有效地加载页面并在加载后执行代码?我假设当页面加载时,函数也会执行,只是浏览器本身不会刷新并完成加载,直到执行完成 希望这对您有意义。在不调用任何这些函数的情况下创建网页。向该页面添加一些JavaScript,向调用函数的PHP脚本发出AJAX请求,然后将返回的结果添加到该页面。不幸的是

我的网站运行simplexml命令从两个不同的网站提取数据,直到函数得到响应后才完成页面加载

这实际上只需要1-2秒,但当普通网页需要几毫秒才能加载时,这一点很明显

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


希望这对您有意义。

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

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


Ajax使用javascript调用外部函数并在不重新加载的情况下更改页面内容。

您有几个选项

  • AJAX调用——一旦加载了重要的内容,让JS向服务器发送消息,告知服务器需要执行一些过程才能完成加载。(雷尼肯和丹·格罗斯曼似乎已经提出了这一点)
  • iframe类似于AJAX,但不需要JS。它位于HTML的底部,可以让服务器知道需要完成的事情,而不必担心任何其他渲染。(实际上,这也可以通过发出HTTP请求的任意数量的标记来实现。img攻击因允许在易受攻击的站点上进行此操作而臭名昭著。)
  • 产生一个新线程。这有点困难/烦人,但它不依赖用户反馈来完成处理。您也可能无法在大多数服务器上执行此操作,但这是在后台完成处理的一种方法

  • 您可以创建一个cron,它将与两个不同的网站进行通信,并定期存储您需要的数据,然后当您的页面运行时,它将与cron为您存储的本地版本进行通信,从而减少页面渲染时间

    所以我应该使用AJAX来执行该功能?这是一个良好的开端。我可以试着查找AJAX创建和函数执行的示例看看jquery=)的.load()函数