【问题标题】:jquery mobile keep fixed content and only load contentjquery mobile保持固定内容并且只加载内容
【发布时间】:2011-12-17 21:01:45
【问题描述】:

我有一个布局固定的页面(即页眉、页脚、导航等)。 Jquery mobile 在通过 ajax 加载方面做得很好,但它会重新加载整个页面,理想情况下我只想加载内容区域。

我认为添加一个带有 data-role="page" 的 div 会告诉 jquery 刷新哪个内容区域,但这似乎什么也没做,只是充当历史的存储容器。

我在文档中找不到属性来设置哪个 div 应该是容器。能不能简单点?

【问题讨论】:

  • 您可能想查看 .trigger('create') jQM 函数或某些表单元素也有类似 .listview('refresh') 的刷新方法

标签: jquery mobile jquery-mobile


【解决方案1】:

根据您的“......理想情况下我只想加载内容区域”的想法。创建页面的“最佳实践”是确保您包含该页面运行所需的所有内容。这意味着它应该包括任何页眉、页脚,并链接到 jquery 和 jquery 移动库和资产。有一个很好的理由。

从候选版本 2 开始(截至撰写本文时的最新版本),系统将使用 URL 重写来清理地址栏中显示的 URL。这样可以更轻松地查看源代码、更轻松地添加书签以及在刷新时(任何人都可以随时进行,相信我,他们会这样做)。该页面将从刷新加载到最新页面,而不会加载您认为的初始页面。如果您在上面概述的情况,那将导致页面没有页眉、页脚、导航等。

确保每个页面都可以独立还可以确保如果您的用户使用一些公司控制的设备,而他们的安全策略迫使他们关闭 JavaScript,他们仍然可以以基本形式查看页面(不ajax,没有多余的装饰)并且仍然可以完成他们需要做的事情。以这种方式编写页面还可以使陷入蜂窝石器时代(功能或翻盖手机)的人们实际上可以使用您的页面。在这两种情况下它可能都不漂亮,但它会起作用,这是最重要的。

【讨论】:

  • 我完全同意——我的系统已经正确处理了这个问题;如果请求是ajax,则只返回内容,否则返回完整布局。 framework.zend.com/manual/en/…
  • Ashley,这可能是一个不错的解决方案,但您需要注意页面缓存时间。如果到 ajax 版本和完整请求是相同的 URL,那么您将面临缓存命中的风险(通常是一件好事)。如果页面首先由 ajax 请求并且不包含页眉、页脚等,然后在缓存中的页面过期之前页面被请求完整,则将向用户呈现缓存的非完整页面。小心“过早的优化”。如果您使用的是 gzip 压缩,那么移除多余部分带来的性能提升将完全可以忽略不计
【解决方案2】:

两个问题的答案:

1) 多个“页面”可以加载到一个 HTML 页面中,非常适合 Web 应用程序。页面 div 被分配了一个 id,然后您可以在页面之间来回跳转,而无需返回服务器。您可以消除附加页面 div 上的页眉和页脚....或保持不变并且不使用页面转换。

或 2) 使用 JQuery 来更新 div。这也很容易,因为 JQuery Mobile 已经在其脚本引用中使用了 JQuery。

<script> 
function loadcontent() { 
var strNewHtml;
strNewHtml = '<p>My New Text</p>';
$('#my-content-id-name').html(strNewHtml);
}
</script>
 add a link:  <a href = "#" onclick="loadcontent();">Click here</a>   

...应该这样做!

【讨论】:

    猜你喜欢
    • 2014-07-25
    • 2019-07-22
    • 1970-01-01
    • 1970-01-01
    • 2011-09-14
    • 1970-01-01
    • 2023-03-08
    • 2012-03-21
    • 1970-01-01
    相关资源
    最近更新 更多