韩国三级高清手机在线版-韩国三级电影久久-韩国三级hd中文字幕一男多女-韩国三级hd中文字幕久久精品-日本精品在线视频-日本精品在线观看视频

前言

單頁應用(Single Page Application)越來越受web開發者歡迎,單頁應用的體驗可以模擬原生應用,一次開發,多端兼容。單頁應用并不是一個全新發明的技術,而是隨著互聯網的發展,滿足用戶體驗的一種綜合技術。

SEO

一直以來,搜索引擎優化(SEO)是開發者容易忽略的部分。SEO是針對搜索(Google、百度、雅虎搜索等)在技術細節上的優化,例如語義、搜索關鍵詞與內容相關性收錄量搜索排名等。SEO也是同行、市場競爭常用的的營銷手段。Google、百度的搜索結果是重要的用戶入口,騰訊云(www.qcloud.com)有30%左右的流量來自搜索引擎。因此SEO在品牌、營銷、用戶量的緯度是非常重要的基礎能力。

那么單頁應用與傳統直出頁面在SEO方面有哪些不同之處呢?

單頁應用的優點

  1. 更好的用戶體驗,讓用戶在web感受natvie的速度和流暢;
  2. 經典MVC開發模式,前后端各負其責。
  3. 一套Server API,多端使用(web、移動APP等)
  4. 重前端,業務邏輯全部在本地操作,數據都需要通過AJAX同步、提交;

對搜索引擎不友好

單頁應用實際是把視圖(View)渲染從Server交給瀏覽器,Server只提供JSON格式數據,視圖和內容都是通過本地JavaScript來組織和渲染。而搜索搜索引擎抓取的內容,需要有完整的HTML和內容,單頁應用架構的站點,并不能很好的支持搜索。

如果站點在用戶體驗和搜索友好權衡時,如果我們做到更好的體驗,也做到友好的搜索支持,既是一箭雙雕。

URL中的哈希(#號)

單頁應用只有一個頁面,視圖的變化通常是通過路由(route)來驅動,首先,我們先來談一談單頁應用的URL中的#號,很多采用單元結構網站的URL都出現了這個符號。

#號在瀏覽器的URL中是一個錨點,在當前頁改變#號的參數,頁面會跳轉到錨點所在的位置,通過JavaScript我們可以獲取到#號后的參數:

1
2
location.hash // 獲取URL hash location.hash = "#list" //改變URL hash

改變#號后的參數,頁面并不會重載,于是大多數的單頁架構網站,都在URL中采用#號來作為當前視圖的URL地址,例如:

1
2
3
example.com/#index //首頁視圖 example.com/#list //列表頁視圖 example.com/#list/1 //id為1的列表信息的視圖

Backbone.js就是通過改變#號參數來組織視圖,這里有一個demo可以很直觀的體驗URL的變化。

看過這個demo,你或許會發現很熟悉的符號#!,Twitter曾在URL使用這個標識。這個標識是Google提出(AJAX 抓取:網站站長和開發人員指南1):

因為復雜的單頁架構頁面,對Google來說抓取比較困難,于是給開發者制定一個規范:

  1. 網站提交sitemap給Google;
  2. Google發現URL里有#!符號,例如example.com/#!/detail/1,于是Google開始抓取example.com/?_escaped_fragment_=/detail/1

_escaped_fragment_這個參數是Google指定的命名,如果開發者希望把網站內容提交給Google,就必須通過這個參數生成靜態頁面。

根據上面的demo,我簡單示例一下Google要抓取的頁面的樣子:

http://119.28.4.22/?escapedfragment_=/detail/1

如此以來,就需要Server通過生成靜態的內容以便Google抓取。

以下將簡單介紹,單頁架構,爬蟲訪問根目錄時如果配置Server端的路由。

判斷爬蟲

當Google訪問119.28.4.22/#!/detail/1 時,會自動轉化成http://119.28.4.22/?_escaped_fragment_=/detail/1,以Nginx為例:

1
2
3
if ($args ~ _escaped_fragment_) { rewrite ^ /api; }

/api為后臺服務的接口,已nodejs為例,代理設置如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
upstream nodejs { server 127.0.0.1:3000; }  
location /api { proxy_set_header X-Request-URI   $request_uri; proxy_set_header X-Real-IP       $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host            $host; proxy_set_header Port            $server_port; proxy_pass http://nodejs; proxy_redirect off; }

如此,我們便將Google的訪問重寫到/api這個接口,然后在Server的/api處理請求把靜態內容輸出即可。

sitemap

Gogole的這個規范,必須有sitemap支持,因為有可能單頁架構的站點,索引頁面也是JavaScript渲染的。提交sitemap時,不用關注_escaped_fragment_這個參數名,只提交帶哈希符號的URL即可,例如:

1
2
3
4
>http://119.28.4.22/#!/detail/1> >weekly> >0.5> >

結語

技術潮流的步伐很快,單頁應用,URL哈希處理也沒渲染的方式實際上已經流行了很久,在國外很多用戶數據較好的情況下,開發者會選擇HTML5 History API的pushstate特性開發,在URL中拋棄#!。但是IE6、7等低端瀏覽器用戶情況較多的網站,#能夠很好的兼容。關于采用HTML5 History API來架構單頁應用的方案,也歡迎討論。


穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
贵阳40多岁熟女高潮呻吟| 人妻人人做人碰人人添青青| 中文字幕亚洲综合久久综合| 我和大佬的365天| 日本精品VIDEOSSEX 黑| 狼人大香伊蕉国产WWW亚洲| 国精产品一二二区视早餐有限| 东京热无码人妻系列综合网站| 97久久超碰国产精品2021| 亚洲乱码日产精品BD| 小蜜被两老头吸奶头| 少妇愉情理伦片高潮日本| 人妻少妇久久久久久97人妻| 男人J桶进女人P无遮挡全过程| 久久国产成人午夜AV影院 | 领导不戴套玩弄下属娇妻 | 999ZYZ玖玖资源站永久| 亚洲综合久久成人AV| 亚洲AV日韩AⅤ无码| 无码国产精品一区二区免费式芒果| 日剧《轮到你了》| 日本XXXX18裸体XXXX| 人人爽人人爽人人片A∨不卡| 欧美成人精品手机在线| 男女裸交免费无遮挡全过程| 老根嫩草1一40淑媛全文| 久久精品爆乳熟妇AV-区| 精品久久人妻AV中文字幕| 狠狠色欧美亚洲狠狠色WWW| 国产亚洲精品精华液| 国产亚洲午夜高清国产拍精品| 国产欧美国产综合每日更新| 国产精品无码午夜免费影院| 国产精品丝袜高跟鞋| 国产免费无遮挡吸奶头视频| 国产熟妇人妻ⅩXXXX麻豆网址 | 日本人妻丰满熟妇久久久久久| 欧洲女RAPPER潮水大豆| 人妻聚色窝窝人体www一区91| 全球AV集中精品导航福利| 青草久久久国产线免观蜜芽| 日本老熟妇ⅩXX| 私人影院播放器大全| 玩弄老太太的BB| 亚洲 欧洲 日韩 综合二区| 亚洲AV日韩精品一区二区三区 | 无码人妻一区二区三区密桃手机版 | 亚洲欧美综合区丁香五月小说| 亚洲精品国产成人| 亚洲婷婷五月综合狠狠| 越看越湿的啪啪的小说免费| 777亚洲熟妇自拍无码区| 国产亚洲AV寡妇| 亚洲AV无码成人精品区百度| 精品无人区一区二区三区在线| 综合一区无套内射中文字幕| 再深点灬舒服灬太大了添A| 真实的国产乱ⅩXXX66小说| 中文字幕一区二区三区精彩视频| EEUSS影院鲁丝片A无码| 床震吃胸膜奶免费视频| 国产成人无码精品XXXX| 国产无套粉嫩白浆在线观看| 精品熟女少妇AV免费久久| 老头挺进娇妻身体| 人妻精品AAAA中文字幕69| 少妇做爰免费视频网站| 无码人妻精品一区二区三区久久| 亚洲AV日韩综合一区尤物| 亚洲熟妇AV一区二区三区下载| 一女大战七个黑人到喷浆| MM1313亚洲精品无码久久| 高潮时粗俗不堪入耳的话| 国产午夜精品无码理论片| 久久精品国产一区二区三区肥胖 | 久久久久成人精品无码| 你的奶好大让老子摸摸的说说| 日本一本2017国产| 无码人妻精品一区二区| 亚洲国产精品无码7777一线| 中文字幕久久久久人妻| 成人网站在线进入爽爽爽| 国产免费观看久久黄AV片| 久久无码中文字幕免费影院蜜桃| 欧美劲爆精品白浆视频网站| 色婷婷综合久久久久中文字幕| 亚洲AⅤ永久无码精品AA| 永久免费AV网站| 成人爽A毛片在线视频| 国色天香精品一卡2卡3卡| 免费无码成人AV在线播| 少妇被粗大的猛烈进出96影院| 亚洲AV无码国产在丝袜APP | 久久久久亚洲AV无码麻豆| 欧美嫩FREEXXXHD| 无码熟妇人妻AV在线影院| 野花视频在线手机免费观看| 波多野结衣亚洲AV手机在线| 国产精品偷窥老熟女高潮| 久久人妻少妇嫩草AV无码专区| 日韩AV无码成人无码免费| 亚洲AV综合色区无码一区偷拍| 中文无码人妻影音先锋| 嗯~使劲~别停~高H漫画| 精品无码人妻被多人侵犯aⅴ| 欧美最猛性XXXXX免费| 小东西才几天没做喷的到处都是| 再深点灬舒服灬太大了添A| 国产AV激情久久无码天堂| 久久777国产线看观看精品| 日本丰满人妻XXXXXHD| 亚洲乱码日产精品BD| 部长来家里喝酒日剧叫什么| 国色天香十七区品质怎么样| 女人被爽到呻吟GIF动态图| 性少妇JEALOUSVUE片| ACCA少女SDANVI| 国产又爽又黄又刺激的视频| 免费啪啪全程无遮挡60分钟| 无码少妇一区二区浪潮av| 18禁黄污无遮挡无码网站| 国产人与禽ZOZ0性伦| 秋霞午夜久久午夜精品| 亚洲另类激情综合偷自拍图片| 成 人 黄 色 网 站 ·大| 精品无码国产污污污免费网站| 日本大学SGU大二大三| 亚洲熟悉妇女XXX妇女AV| 国产CHINESE男男GAYGAY网站| 老牛精品亚洲成AV人片| 无遮无挡爽爽免费毛片| 365天天色综合网| 黑人玩弄人妻1区二区| 日产乱码一二三区别免费看| 亚洲桃色AV无码| 国产精品亚洲产品一区二区三区| 你再躲一个试试BY深巷无酒| 亚洲AV激情高潮抽搐乱色| 成人区精品一区二区不卡| 久久伊人精品一区二区三区| 无码精品黑人一区二区三区| CHINESE熟女熟妇1乱| 精品无码人妻一区二区三区 | 国产无遮挡又爽又黄大胸免费| 欧美性大战久久久久久久| 亚洲熟妇无码乱子AV| 国产精华液和欧美的精华液的区别| 欧美丰满熟妇XXXX性PPX人| 亚洲精品乱码久久久久66| 国产69精品久久久久9999A| 嫩草院一区二区乱码| 亚洲精品乱码久久久久久蜜桃不卡| 国产AⅤ无码专区亚洲AV麻豆| 男女一起差差差差差| 亚洲欧美日韩愉拍自拍 | 日日摸日日碰夜夜爽97| 26UUU另类亚洲欧美日本| 久久精品成人无码观看免费| 亚洲AV成人无码网站在线| 成人免费视频一区二区三区| 女人18毛片A级毛片嫰阝| 亚洲精品无码你懂的网站| 国产精品无码A∨精品影院| 日产无人区一线二线三线新版| 亚洲另类欧美综合久久图片区| 野花日本大全免费观看版动漫| 69无人区乱码一二三四区别| 国产欧美日韩精品丝袜高跟鞋| 欧美中日韩免费观看网站| 亚洲一区二区三区乱码AⅤ| 国产区精品一区二区不卡中文 | 国产精品毛片A∨一区二区三区| 亚洲AV无码成H人动漫无遮挡| 宝贝把腿抬高点我让你更爽漫画| 麻花传媒免费网站在线观看| 亚洲精品又粗又大又爽A片| 国产私人尤物无码不卡| 少妇伦子伦精品无码STYLES| らだ天堂√在线WWW| 女儿的朋友3完有限中字木瓜| 伊人久久大香线蕉午夜| 久久精品国产成人AV| 羞羞汗汗YY歪歪漫画AV漫画| 99久久免费只有精品国产| 被老外添嫩苞添高潮NP视频| 精品人妻大屁股白浆无码| 日产乱码一二三区别免费观看| 中国WINDOWS野外| 狠狠色丁香久久婷婷综合_中| 中文字幕AV日韩精品一区二区| 久久99热只有频精品8| 水多多凹凸福利视频导航| 亚洲AV成人综合网成人| 亚洲精品~无码抽插| 韩国好看女性高级感美妆| 小蜜被两老头吸奶头| 国产亚洲精品拍拍拍拍拍| 亚洲AV无码成人精品区在线观看| 护士奶头又白又大又好摸| 亚洲精品无码专区在线播放|