`
banxi1988
  • 浏览: 154225 次
  • 性别: Icon_minigender_1
  • 来自: 桂林
社区版块
存档分类
最新评论

[翻译介绍]jquerymobile的页面连接(Linking pages)

阅读更多
一:链接页(Linking pages)jQuery Mobile设计用来与简单的页面链接约定协同工作。
显然,你可以链接页面和资源像你平常那样,jQuery Moblie会自动处理页面的请求,以单页面模型,如果可能的话使用Ajax。当Ajax不能用时(如不是同一个域名下,或者在链接中指定了类似属性) 将使用正常的http请求。
   这种模型的目标是允许开发者以最佳实践来创建网站:没有配置的原始链接将正常工作,富本地体验的不通过标准的HTTP请求来获得。
二:默认的链接行为:Ajax(Default link behavior:Ajax)
  为了让页面的切换动画成为可能,所以指向外部页面的链接将通过Ajax请求来加载。
为了达到非侵入的效果(To do this unobtrusively),jQuery Mobile框架将转换链接的href来创建一个Ajax形式的请求(Hijax)同时显示一个正在加载的图标。这些都由jQuery Mobile自动完成。
  如果Ajax请求成功,新的页面将添加进DOM中,所以的手机小部件将自动初始化,然后新页面将以动画的方式进入视图。
   如果Ajax请求失败,框架会显示一条小的错误信息--几秒之后会消失,所以并不会中断导流。更多请查看一个(错误消息示例)

   注意:你并不能通过Ajax导航活动链接到多页面文档,因为框架将只会加载它发现的第一个页面,而不是整个页面集合。在这种情况下你必要使用无Ajax的链接(参见下一节)来进行一个整个页面的刷新来阻止潜在的hash碰撞。当前这有一个子页面插件来使加载多文档页面成为可能。

三:非Ajax的链接(Linking without Ajax)
  指向其它域名的链接或者有rel="external"属性,data-ajax="false"或target属性将不被通过Ajax加载的链接。这些链接会引起一个完全的页面刷新而没有动画切换效果。
两个属性(rel="external"和data-ajax="false")都有相同的效果,但是它们的语义不同:rel="external" 应该用于当一个链接指向另一个站点或者域名。而data-ajax="false"用于在你的域名之内一个页面Ajax加载的选项。出于安全的限制和Ajax的行为这个框架总是选择连接到外部的域名(译注:这个不太理解,原文:the framework always opts linkis to external domains out of the Ajax behavior)

  注意:构建一个jQuery Mobile应用程序时,当Ajax导航系统被全局禁用或者单独的链接常常被禁用时,我们推荐禁用$.mobile.pushStateEnabled这个全局配置选项来避免在某些浏览器上不一致的导航效果。

四:多页面文档中的链接(Linking within a multi-page document)
    一个单独的HTML文档可以包含一个或多个页面('page')容器,有多个以一个属性data-role的值为"page"的div,这允许你在一个音单独的HTML文档中创建一个小站点或者应用。当页面加载时jQuery Mobile将简单的显示在源代码中发现的第一个'page'
    如果一个在多页面文档中的链接指向一个锚(#foo),这个框架将查找一个相应ID(id="foo")的页面。如果在这个HTML文档中找到了这个页面,框架将反这个页面容器转到视图。可以在本地实现无缝导航。对于用户来说内部的页面('page')和外部的'page'看起来一样,除了外部的页面在加载的时候会显示一个Ajax的加载图标。两种情况,框架都将会更新页面的URL的hash,以便支持后退按钮,深度链接和书签。
    注意:如果你正从一个通过Ajax加载的页面链接到一个包含多个内部page的页面的话,你需要为此链接添加一个rel="external"或者data-ajax="false"的属性。这会通知框架完成一个完全的页面加载以清除URL中的Ajax hash。
这个限制是因为Ajax页面通过使用hash(#)来跟踪Ajax历史。而一个多内部页面的页面使用hash来标明内部页面。所以在这两种模式下会存在 冲突。
例如一个指向多内部页面的页面看起来如下:
[code=xml]
<a href=multipage.html>Multi-page link</a>


五:后退按钮链接("Back" button links)
       如果你在一个锚上使用属性data-rel="back" ,锚上的任何点击将会像后退按钮一样。返回一个历史记录而忽略锚的默认链接。当使用JavaScript产生'back"后退按钮时这一点特别有用,例如关闭对话框的按钮。当在你的源代码标记中使用这个特性的时候,虽然支持这个属性的浏览器将不会使用指定的href属性。但是还是提供一个有意义的值指向一个引用页的URL以方便未来支持C类浏览器。如果用户能够访问这个页面从多个引用页,指定一个有意义的href以便导航对于用户依然是本地化的,同时请记住如果你只是倒置一个转换而不需要实际的在历史记录中后退,你应该使用data-direction="reverse"。


六:重定向和链接到目录(Redirects and linking to directories)
  当链接到一个目录(例如href="typesofcats/" 而不是href="typeofcats/index.html"),你必要使用一个正斜杆。因为jQuery Mobile假设在URl中最后一个"/"之后的部分字符是一个文件名,后面页面引用将会创建删除前面那部分的基本url。

然后,你能你可以解决这个问题给你的页面提供一个指定的data-url属性。当你这样做的时候,jQuery Mobile将使用那个属性值来更新URL。而不是用来请求那个页面的Url。
这样允许你返回作为重定向结果改变的URL。例如你提交一个表单到"/login.html"但是当成功提交之后页面从url"account"返回。这个工具允许在这些情况下你控制jQuery Mobile的历史记录,下面是一个例子:
接下来的链接指向"docs-links-urltest/index.html":
测试链接,这个链接是一个目录并带一个index页面。返回的页面将改变更新hash为"/docs/pages/docs-links-urltest"和一个正斜杆。这个通过在页面源代码中的data-url属性来完成的。记住,这个值将替换整个条目的hash。同时当通过刷新请求时一个URL是实际的解析为一个正确的页面还是一个深度的连接。
了解更多关于导航模型,Ajax和hashes及历史的技术细节在Jquery mobile中。

七:链接示例(Link examples)
  所有标准的HTML的链接类型都被支持,除了上面例举的一些类型。下面是一些常用链接类型的示例:
(译注:示例效果请看原文,下面是示例的代码)
[code=xml]
<ul data-role="listview" data-inset="true" data-theme="d" data-divider-theme="d">
<li data-role="list-divider">Links that will be Ajax-loaded with page transitions</li>

<li><a href="../../index.html">Link in the same domain</a></li>
<li><a href="../pages/dialog.html" data-rel="dialog">Dialog link: data-rel="dialog" (not tracked in history)</a></li>
<li data-role="list-divider">Links that will refresh the page</li>
<li><a href="http://www.jquery.com">External domain</a></li>
<li><a href="../../index.html" rel="external">Link with rel="external"</a></li>
<li><a href="index.html" data-ajax="false">link with [data-ajax="false"]</a></li>

<li><a href="../../index.html" target="foo">Link with target="foo"</a></li>
<li data-role="list-divider">Email links</li>
<li><a href="mailto:jdoe@foo.com">Basic email: mailto:jdoe@foo.com</a></li>
<li><a href="mailto:jdoe@foo.com?cc=bill@bar.com&bcc=mark@abc.com&subject=Happy%20Birthday&body=Best%20wishes!">Mailto with a cc:, bcc:, subject and body pre-filled</a></li>

<li data-role="list-divider">Phone links</li>
<li><a href="tel:15555555555">Phone: tel:15555555555</a></li>

<li data-role="list-divider">Other</li>
<li><a href="#">A href="#" will return false</a></li>
</ul>






原文链接:http://jquerymobile.com/demos/1.0/docs/pages/page-links.html





0
0
分享到:
评论

相关推荐

    jQuery Mobile 所需要的部署文件

    3. **jQuery Mobile JavaScript**:这是jQuery Mobile的核心库,负责处理触摸事件、页面加载和转换、以及组件的动态化。同样,可以链接到CDN或本地的JS文件。 4. **可能的额外文件**:根据示例的复杂性,可能会有...

    JqueryMobile页面间跳转时的参数传递

    ### JqueryMobile页面间跳转时的参数传递 在使用jQuery Mobile进行移动Web应用开发时,经常需要在不同页面之间传递参数。这种功能对于实现页面之间的数据交互至关重要。本文档将通过一个具体的代码示例来详细说明...

    jQueryMobile-HTML5模板

    2. **自动页面导航**:通过数据-URL(data-url)属性和页面容器,jQuery Mobile可以自动管理页面的加载和切换,实现平滑的页面过渡效果。 3. **可定制的主题系统**:jQuery Mobile提供了一套主题引擎,允许开发者...

    JqueryMobile快速上手教程-实训任务书01-我的第一个JqueryMobile页面

    2. **页面容器(Page Container)**:所有 jQuery Mobile 页面都必须包含在一个 `data-role="page"` 的 div 中,这是页面的基本单元。 3. **导航结构(Navigation Structure)**:使用 `data-rel` 属性创建链接间的...

    jQuery mobile相册

    2. **相册容器**:创建一个用于显示相册的容器,例如使用`&lt;div&gt;`元素,并赋予它一个特定的数据-角色,如"data-role='content'",这是jQuery Mobile页面的主要内容区域。 3. **图片列表**:将每张图片包装在一个链接...

    jQuery mobile相册的一种样式

    每个图片都会放在一个独立的`&lt;div&gt;`中,用`data-role="page"`来指定它是jQuery Mobile的一个页面。`&lt;a&gt;`标签包裹着图片,作为可点击的元素,`&lt;img&gt;`标签则用来显示图片。 2. **CSS样式**:接着,我们需要编写CSS...

    jquerymobile设计完整例子

    在“jQuery Mobile 设计完整例子”中,我们将深入探讨这个框架的各个方面,包括登录页面的设计、菜单的实现以及菜单间的切换。 1. **登录页面设计** jQuery Mobile 提供了预定义的样式和布局结构,用于创建美观的...

    Jquery mobile 从设计到开发

    在《jQuery Mobile Develop and Design》中,作者不仅介绍了框架的细节,还提供了一个实际和愉快的叙述方式,帮助读者快速上手,并准备好创建一些优秀的作品。书中还包含了以下几方面的内容: - 易于理解的逐步指导...

    jQuery Mobile实战源码

    通过使用`data-url`属性,jQuery Mobile可以跟踪页面的历史记录,实现平滑的页面过渡效果。在源码中,你会看到如何组织这些页面元素以及如何通过链接或JavaScript进行页面导航。 表单处理是jQuery Mobile的另一大...

    JQueryMobile UI 汇总

    1. **页(Pages)**:页面是 jQuery Mobile 应用的基本构建单元,可以通过 data-role="page" 标记。每个页面都可以独立存在,也可以嵌入同一个文档中。 2. **导航(Navigation)**:使用无刷新的 AJAX 导航来实现...

    jQuery Mobile参考手册

    3.jQuery Mobile 使用了极少的 HTML5、CSS3、JavaScript 和 AJAX 脚本代码来完成页面的布局渲染。 4.通过使用jQuery Mobile 可以 "写更少的代码,做更多的事情" : 它可以通过一个灵活及简单的方式来布局网页,且兼容...

    jQuery Mobile快速入门.pdf

    ### jQuery Mobile 快速入门知识点概述 #### 一、jQuery Mobile 概述 - **定义与背景**:jQuery Mobile 是一款流行的...通过本文的介绍,希望能够帮助读者更好地理解和掌握 jQuery Mobile 的基础知识及实际应用场景。

    jquery mobile官方git资源

    文档详细介绍了jQuery Mobile的各种组件、事件、API和最佳实践,帮助开发者了解如何有效地利用这个框架。示例部分则提供了各种实际应用,涵盖导航、表单、按钮、面板等元素,通过这些示例,开发者可以直观地理解各个...

    jQuery mobile滑动式的标题导航

    jQuery Mobile 提供了多种事件来监听页面的生命周期,比如`pagebeforeshow`和`pageshow`,可以用于在页面显示前或显示后执行某些操作。例如,我们可以使用`pageinit`事件初始化滑动式标题导航: ```javascript $...

    JqueryMobile课件源码

    jQuery Mobile 是基于 jQuery 和 jQuery UI 的轻量级框架,主要目标是简化移动 Web 开发,提供一致的触摸事件处理、页面结构和导航模式。其核心理念是“Write Less, Do More”,通过简单的 HTML 标签和 CSS 类,实现...

    jquery mobile 1.4.1版

    最后,`jquery.mobile.structure-1.4.1.css`是一个关键文件,它定义了jQuery Mobile的页面结构和布局规则,包括页头、页脚、内容区域等元素的样式,确保了页面在不同屏幕尺寸下的适应性。 jQuery Mobile 1.4.1版的...

    jquery mobile css3手机表单页面布局按钮样式

    jQuery Mobile 是一个轻量级的框架,专为触摸设备设计,它提供了一套完整的组件和交互模式,包括表单、页面布局和按钮样式等。CSS3 则是新一代的CSS规范,引入了许多新的功能和样式效果,为网页设计提供了更多可能性...

    jQuery Mobile快速入门源代码

    1. **基础概念**:介绍如何设置HTML文档结构,引入jQuery Mobile库,并理解页面和页面容器的概念。 2. **页面导航**:展示如何使用链接进行页面间导航,以及如何处理多页布局。 3. **触控事件**:包含使用触控事件...

    jQuery Mobile 高级设计模板

    4. **页面导航:** jQuery Mobile 自带了一个基于链接的页面导航系统,可以处理页面间的过渡效果,无需实际的页面刷新。 5. **自动适应屏幕大小:** 通过流式布局和媒体查询,jQuery Mobile 能够自动适应不同尺寸的...

Global site tag (gtag.js) - Google Analytics