在加载 php 代码时显示加载图像

时间:2021-02-13 14:30:47

标签: javascript php

我有多个 php xpath 代码,加载时间大约为 5 到 10 秒。

这里是代码,如果这会有所作为:

<?php

$html_string = file_get_contents('https://website.com/');
$dom = new DOMDocument();
libxml_use_internal_errors(true);
$dom->loadHTML($html_string);
libxml_clear_errors();
$xpath = new DOMXpath($dom);
$values = array();
$row = $xpath->query('//*[@id="wsod_forecasts"]/div[2]/p/strong');
foreach($row as $value) {
   print($value->nodeValue);
}

?>

我的问题是,是否可以在加载代码的同时创建一个简单的加载图像或文本?

像这样:

<image loading script>
<?php ?>
</image loading script end>

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

<块引用>

是否可以在加载代码的同时创建一个简单的加载图像或文本?

是的,但不是你想的那样。考虑到 PHP 代码在服务器上运行,完成,然后在客户端上呈现页面。一个请求,PHP 代码运行,然后一个响应,然后页面呈现。

所以你想把你的逻辑分解成两个请求。所以操作顺序应该是这样的:

  1. 用户请求页面。
  2. 最少(甚至没有)PHP 代码立即返回页面。
  3. 客户端 (JavaScript) 代码显示某种“加载”指示。 (或者默认显示,无所谓。)
  4. 客户端代码向不同的 PHP 文件发出 AJAX 请求。
  5. 那个 PHP 文件执行您现在拥有的逻辑,这需要一些时间,并以 JSON 格式返回数据。
  6. 客户端代码接收 AJAX 响应,更新页面内容,并删除“加载”指示器。

这是一种非常常见的方法,有很多教程可以帮助您开始使用 AJAX 调用 PHP。但这里的要点是将“页面加载”逻辑与“内容加载”逻辑分离为两个不同的请求,从而提供更好的整体用户体验。

答案 1 :(得分:0)

简短的回答是否定的,不是 PHP。

这是因为 PHP 是一种服务器端语言。当客户端(用户)向网页发出请求时,服务器会收到请求,然后将请求路由到适当的位置(在本例中为 PHP 文件)。 PHP 然后构建 html 发送回客户端,以便浏览器可以呈现它。

当所有这一切都发生时,客户端必须等待,无法知道服务器上发生的事情的进展。

在等待时获得加载图标的最佳方法是返回一个没有太多信息的简单页面。此页面应包含加载图标以及 JavaScript 以向服务器发出另一个请求。这将是一个 AJAX 请求,JavaScript 需要对其进行解释以呈现返回的数据。

相关问题