深入學習jquery mobile 頁面模版(1)

    在美國,IOS和Android設備佔了很大比重,而美國以外的地方主要是Nokia的設備佔統治地位。jQueryMobile爲了在儘可能多的 設備上運行,承諾將支持絕大部分移動設備/系統。在早些時候(2010年9月),jQuery的作者John Resig透露了一張jQueryMobile對各種設備/系統的支持表格(見下)。對於每個系統來說,jQueryMobile將他們的支持情況分爲 A(好),B(一般),C(基本)三個等級。

       學習jquery mobile 時候有一個比重要的基礎概念必須弄明白--頁面模版。jQueryMobile始終貫徹漸進增強的設計觀念來滿足你的開發需要,其核心能使得基本的HTML標籤在所有的瀏覽器中生效,在此基礎之上,再對網頁的行爲和效果進行增強,解決繁雜的移動瀏覽器們帶來了巨大的挑戰:一方面某些瀏覽器(例如Android的原生瀏覽器,Safari移動版等)都基於WebKit的一個變種版 本(WebKit是一個web渲染引擎,Google Chrome桌面版,Apple的Safari都採用了該引擎。WebKit並不知道當前運行的網絡的好壞,操作系統是什麼甚至屏幕滾動到了哪裏,爲了讓 WebKit知道這些情況,操作系統/瀏覽器/設備廠商都需要基於WebKit來構建自己的瀏覽器程序),並帶有豐富的特性。另一方面Nokia的 Symbian和Windows Mobile 6(及更早的版本)這些胡亂支持標準的設備又佔有相當大的市場。雪上加霜的是,WebKit在不同移動設備中還有不同的版本。這意味着jquery mobile 構建的網頁在等級較高的瀏覽器中能獲得非常優秀的體驗,而在較差的瀏覽器也能正常的使用。

        

      在一個HTML頁面中可以有多個page頁面,每一個page頁面下有各自的header、content以及footer。如下例子就是一個包括多個頁面的情況:

<!DOCTYPE html> 
<html> 
	<head> 
	<meta charset="utf-8">
	<title>Multi Page Example</title> 
	<meta name="viewport" content="width=device-width, initial-scale=1">
	<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.css" /> 
	<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
	<script type="text/javascript">/* Shared scripts for all internal and ajax-loaded pages */</script>
	<script src="http://code.jquery.com/mobile/1.0/jquery.mobile-1.0.min.js"></script>
	</head> 
<body> 

<!-- First Page -->
<div data-role="page" id="main" data-title="Welcome">
	<div data-role="header">
		<h1>This is Multi-Page Example</h1>
		<ui>歡迎來到 jquery mobile 新聞社區</ui>
	</div>

	<div data-role="content">
		<a href="#bbs" data-role="button">社區論壇</a>	
		<a href="#news" data-role="button">新聞快報</a>	
		<a href="#question" data-role="button">在線解答</a>	
	</div>
	<script type="text/javascript">
		/* Page specific scripts here. */
	</script>	
</div>

<!-- Second Page -->
<div data-role="page" id="bbs" data-title="bbs">
	<div data-role="header">
		<h1>社區論壇</h1>
	</div>

	<div data-role="content">	
		<li>歡迎來到 jquery mobile 提問社區</li>
			<li>建議你在學習jquery mobile 過程多思考,多實驗</li>
	</div>
</div>

<!-- third Page -->
<div data-role="page" id="news" data-title="news">
	<div data-role="header">
		<h1>新聞快報</h1>
	</div>

	<div data-role="content">	
		<h>jquery mobile 支持衆多移動終端快速發展</h>
		<p>在美國,IOS和Android設備佔了很大比重,而美國以外的地方主要是Nokia的設備佔統治地位。jQueryMobile爲了在儘可能多的 設備上運行,承諾將支持絕大部分移動設備/系統</p>
		<a href="#main" data-role="button">返回首頁</a>	
	</div>
</div>

<!-- fourth Page -->
<div data-role="page" id="question" data-title="question">
	<div data-role="header">
		<h4>在線解答</h4>
	</div>

	<div data-role="content">	
		<h3>管理員很懶,居然翹班,不在線,請電話投訴他!</h3>
		<a href="#main" data-role="button">返回首頁</a>	
	</div>
</div>
</body>
</html>

頁面效果:



      在多頁面問文檔中,每個頁面可以有一個page或者dialog的data-role,每一個page頁面有其特有的id屬性值,通過該值可以實現多頁面之間的切換導航。最初加載多頁面時候,只有第一個頁面得到增強並顯示出來,這主要是由於jquery mobile採用url方式,一次性加載多個頁面會導致。如上述例子中,訪問該html,首先增強展現的是代碼中註釋First Page部分的page。如何想要直接訪問其他page頁面,則可以通過在多頁面文檔名字之後添加#帶上具體頁面的id如id爲news的頁面,直接訪問e.html#news可以直接訪問到這個頁面。

    而其他後續頁面,只有在被請求並緩存到DOM中,纔會被增強,該方式十分適合有要求快速響應時間的頁面情況。內部多個頁面之間的導航,必須通過page的id來進行引用。如:<a href="#main" data-role="button">返回首頁</a> 中超鏈接返回首頁的寫法。

     另外需要注意當連接到一個包含多個頁面的頁面時,必須爲其連接添加rel="external"。如<a herf="e.html" rel="external">home</a>

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章