Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.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 当页面的其余部分仍在加载时,是否可以使用AJAX加载模块?_Php_Ajax_Joomla2.5 - Fatal编程技术网

Php 当页面的其余部分仍在加载时,是否可以使用AJAX加载模块?

Php 当页面的其余部分仍在加载时,是否可以使用AJAX加载模块?,php,ajax,joomla2.5,Php,Ajax,Joomla2.5,我正在为Joomla写一个模块。它将显示通过SOAP请求获得的数据。SOAP请求的问题是检索数据可能需要5秒钟。这个Joomla模块将与许多其他Joomla模块和其他内容一起出现在页面上。我担心的是,如果执行SOAP请求的这个Joomla模块最多需要5秒钟,那么它将延迟加载页面的其余部分。我们都去过因为页面的一部分而延迟加载的网站,我不希望这种情况发生 我想知道解决方案是否是让Joomla模块使用AJAX(我还没有使用过AJAX)来执行SOAP请求(目前它是用PHP完成的),并以某种方式允许加载

我正在为Joomla写一个模块。它将显示通过SOAP请求获得的数据。SOAP请求的问题是检索数据可能需要5秒钟。这个Joomla模块将与许多其他Joomla模块和其他内容一起出现在页面上。我担心的是,如果执行SOAP请求的这个Joomla模块最多需要5秒钟,那么它将延迟加载页面的其余部分。我们都去过因为页面的一部分而延迟加载的网站,我不希望这种情况发生

我想知道解决方案是否是让Joomla模块使用AJAX(我还没有使用过AJAX)来执行SOAP请求(目前它是用PHP完成的),并以某种方式允许加载页面的其余部分,而SOAP请求返回数据可能需要5秒钟才能显示


什么是解决这个问题的好办法?缓存数据并不是一个真正的选项,因为它是及时的。谢谢

这次我会选择Ajax

使用window.onload()触发ajax获取数据。唯一的问题是,在获取数据之前将加载整个页面,从而导致显示最终数据的潜在延迟

根据偏好,代码会有很大变化,但ajax的原则是:

  • 创建占位符或包含占位符内容(或无)
  • 在事件上(在本例中为页面就绪)请求数据
  • 数据准备好后,用数据替换占位符内容
  • 这还有一个额外的优点,即您也可以使用“刷新”按钮触发更改,因此用户可以请求更新的数据,而无需重新加载原始页面

    Ajax非常值得学习,因为无论是使用jquery还是使用简单的js,它都是一个棘手的问题。W3schools.com有一个很好的教程