《jQuery、jQuery UI及jQuery Mobile技巧与示例》——9.2 技巧:用单个HTML文件服务多张页面

简介: 可以在单个HTML文件中添加多张页面。这样的话,就不需要发送新的请求到服务器,所以接口就更具响应性了。除此之外,离线时仍旧可以导航页面。代码清单9-2演示了如何链接至第二张页面。

本节书摘来自异步社区《jQuery、jQuery UI及jQuery Mobile技巧与示例》一书中的第9章,第9.2节,作者:【荷】Adriaan de Jonge , 【美】Phil Dutson著,更多章节内容可以访问云栖社区“异步社区”公众号查看

9.2 技巧:用单个HTML文件服务多张页面

可以在单个HTML文件中添加多张页面。这样的话,就不需要发送新的请求到服务器,所以接口就更具响应性了。除此之外,离线时仍旧可以导航页面。代码清单9-2演示了如何链接至第二张页面。

对于页面数量有限的情况,这会工作得很不错。然而,有时内存消耗会成为问题(取决于目标设备的规格)。稍后会讨论链接至外部页面。

代码清单9-2 导航到第二张页面

00 <!DOCTYPE html> 
01 <html> 
02 <head> 
03  <title>Pages</title> 
04  <meta name="viewport" 
05    content="width=device-width, initial-scale=1"> 
06  <link rel="stylesheet" href=
07    "http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.css">
08  <script type="text/javascript"
09    src="http://code.jquery.com/jquery-1.7.1.min.js">
10  </script>
11  <script type="text/javascript" src=
12    "http://code.jquery.com/mobile/1.1.0/jquery.mobile-1.1.0.min.js">
13  </script>
14 </head> 
15 <body> 
16 
17 <div data-role="page">
18 
19  <div data-role="header">
20   <h1>First</h1>
21  </div>
22 
23  <div data-role="content"> 
24   <p>Hello world <a href="#second">and go to the second</a></p>  
25  </div>
26  
27  <!--
28  Either/or... the result is in the LINK, not the DIV
29 
30  <div data-role="content"> 
31   <p>Or... <a href="#second" data-rel="dialog"
32   data-transition="pop">show the exact same page as a
33   dialog!</a></p>  
34  </div>
35   -->
36 </div>
37 
38 <div data-role="page" id="second">
39 
40  <div data-role="header">
41   <h1>Second</h1>
42  </div>
43 <div data-role="content">
44   Hello, again!
45 </div>
46 
47 </div>
48 
49 </body>
50 </html>

让我们从HTML的底部开始说起。第38~45行的div是第二张页面。它有自己的header和content。更为重要的是,div元素有一个id属性。

第23~25行是第一张页面的主体内容,里面有一个链接指向了第二张页面。在id属性前面放一个#把它变为一个哈希标记(hash-tag),这样就可以作为锚点被引用了。点击链接时,请注意观察移动浏览器的URL地址栏。你可以使用这个新的URL来建立该页面的书签(bookmark),当你点击该书签时就能直接打开第二张页面了。

最后,第27~35行是第23~25行的一种替代方案。它当前被 注释标记禁用了。如果你用该内容替换第23~25行的内容,第二张页面会以对话框而不是新页面的方式打开。和你所看见的一样,是以普通页面还是以对话框的方式来打开页面是由链接指定的。

推荐你不要混合使用多种打开页面的方式。要么以页面的方式打开,要么以对话框的方式打开。在单个HTML文件中切换打开方式会导致意想不到的行为。

相关文章
|
8月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
1082 2
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
1085 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
JavaScript
jQuery+HTML5实现的微信大转盘抽奖源码
这是一款基于jQuery+HTML5实现的微信大转盘抽奖效果源码,是一款可配置奖品抽奖的jQuery大转盘抽奖代码,可实现点击按钮转轮旋转实现抽奖功能,效果逼真自然,代码里面有详细的注释,可以修改文字或者二次开发都可以
452 11
|
JavaScript
jQuery实现的卡片式翻转时钟HTML源码
jQuery实现的卡片式翻转时钟HTML源码
197 0
jQuery实现的卡片式翻转时钟HTML源码
|
XML JavaScript 数据格式
jquery中html()方法的使用
jquery中html()方法的使用
442 1
|
JavaScript
超炫酷UI效果的jQuery滑块插件
超炫酷UI效果的jQuery滑块插件
201 0
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
177 2
|
JavaScript
H-ui JQuery 给单选按纽赋值不生效
H-ui JQuery 给单选按纽赋值不生效
231 0
H-ui JQuery 给单选按纽赋值不生效
|
前端开发 JavaScript Java
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
302 1
|
XML 前端开发 JavaScript
jQuery HTML / CSS 方法
jQuery HTML / CSS 方法
170 0