加载结果时显示占位符


Display placeholder while results are loading

我有一个页面,其中包含从数据库检索的各种信息块。这些块被排列成几个部分,目前所有这些代码都在一个很长的PHP页面中,所以每次我加载一个页面时,它的显示都会有延迟。我希望能够更快地加载页面并放置某种"加载..."或将加载内容的部分中的图像占位符。我经常在其他网站上看到它。我该如何做到这一点?我需要将我的长 PHP 页面分解为:

  1. 主布局页

  2. 将包含来自 db 的数据的每个块放入单独的页面中,然后

  3. 使用包含插入到主页中。

生成内容时,我将如何放置"加载"?

只是想更好地了解这个过程。我也使用 jQuery。也许有一个插件可以帮助解决这个问题?

谢谢。

在主布局页面中仅包含您希望在页面最初加载时可见的元素。 您应该具有带有 ID 的占位符元素,这些元素可以通过 JavaScript 访问,您希望从服务器获取内容。

使用 jQuery 的 ajax 函数将内容从单独的请求加载到服务器:

$.ajax({
    url: '/path/to/script.php',
    data: 'any=get&variables=you&would=like&to=set', // can also be passed as an object
    success: function( html ) {
        // The argument passed to the success function is ALL of the output 
        // of your 'script.php'
        $('#containerid').html( html );
    }
});

在您的后端 PHP 脚本中,只需echo出您想要显示的内容。 您可以选择将内容作为 JSON 对象传递回去,这是一种更可取的方法,但需要在客户端进行更多处理(必须先解析对象,然后才能访问它。 请参阅 PHP 的 json_encode 函数和 JSON.org 以获取有关 JSON 的更多信息)。

以这种方式构建,对我来说,对您想要填充的每个容器发出 1 个 ajax 请求是最有意义的。

另请查看jQuery的ajax函数的参考页面

由于你使用的是jQuery,显而易见的方法是让PHP脚本构建一个骨架页面,然后使用javascript函数(Ajax)加载页面的不同部分,甚至可以在块中执行此操作,以便每次只加载每个部分的一部分。

您可以使用页面布局构建一个 php 文件。在此文件中,使用 AJAX 从所有块加载数据。您可以使用 jQuery 进行 AJAX 调用。

当你执行ajax调用时,你可以放一些动画gif"加载...",如果你搜索谷歌"加载gif",有很多。

希望对您有所帮助。