加载结果时显示占位符

时间:2012-05-10 14:00:52

标签: php jquery

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

  1. 主要布局页面

  2. 将包含db数据的每个块放入单独的页面,并

  3. 使用include插入主页面。

  4. 在生成内容时如何进行“加载”?

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

    感谢。

3 个答案:

答案 0 :(得分:2)

在您的主布局页面中仅包含您希望在页面最初加载时可见的元素。您应该有占位符元素,其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函数和{{ 3}}有关JSON的更多信息。

以这种方式结构化,我最有意义的是每个容器要填充1个ajax请求。

请查看JSON.org了解jQuery的ajax功能

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

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

希望它有所帮助。