成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

單頁(yè)應(yīng)用SEO淺談(轉(zhuǎn)載)

xuhong / 962人閱讀

摘要:中的哈希號(hào)單頁(yè)應(yīng)用只有一個(gè)頁(yè)面,視圖的變化通常是通過(guò)路由來(lái)驅(qū)動(dòng),首先,我們先來(lái)談一談單頁(yè)應(yīng)用的中的號(hào),很多采用單元結(jié)構(gòu)網(wǎng)站的都出現(xiàn)了這個(gè)符號(hào)。

單頁(yè)應(yīng)用SEO淺談

單頁(yè)應(yīng)用(Single Page Application)越來(lái)越受web開(kāi)發(fā)者歡迎,單頁(yè)應(yīng)用的體驗(yàn)可以模擬原生應(yīng)用,一次開(kāi)發(fā),多端兼容。單頁(yè)應(yīng)用并不是一個(gè)全新發(fā)明的技術(shù),而是隨著互聯(lián)網(wǎng)的發(fā)展,滿足用戶體驗(yàn)的一種綜合技術(shù)。

SEO

一直以來(lái),搜索引擎優(yōu)化(SEO)是開(kāi)發(fā)者容易忽略的部分。SEO是針對(duì)搜索(Google、百度、雅虎搜索等)在技術(shù)細(xì)節(jié)上的優(yōu)化,例如語(yǔ)義、搜索關(guān)鍵詞與內(nèi)容相關(guān)性、收錄量、搜索排名等。SEO也是同行、市場(chǎng)競(jìng)爭(zhēng)常用的的營(yíng)銷手段。Google、百度的搜索結(jié)果是重要的用戶入口,騰訊云(www.qcloud.com)有30%左右的流量來(lái)自搜索引擎。因此SEO在品牌、營(yíng)銷、用戶量的緯度是非常重要的基礎(chǔ)能力。

那么單頁(yè)應(yīng)用與傳統(tǒng)直出頁(yè)面在SEO方面有哪些不同之處呢?

單頁(yè)應(yīng)用的優(yōu)點(diǎn)

更好的用戶體驗(yàn),讓用戶在web感受natvie的速度和流暢;
經(jīng)典MVC開(kāi)發(fā)模式,前后端各負(fù)其責(zé)。
一套Server API,多端使用(web、移動(dòng)APP等)
重前端,業(yè)務(wù)邏輯全部在本地操作,數(shù)據(jù)都需要通過(guò)AJAX同步、提交;

對(duì)搜索引擎不友好

單頁(yè)應(yīng)用實(shí)際是把視圖(View)渲染從Server交給瀏覽器,Server只提供JSON格式數(shù)據(jù),視圖和內(nèi)容都是通過(guò)本地JavaScript來(lái)組織和渲染。而搜索搜索引擎抓取的內(nèi)容,需要有完整的HTML和內(nèi)容,單頁(yè)應(yīng)用架構(gòu)的站點(diǎn),并不能很好的支持搜索。

如果站點(diǎn)在用戶體驗(yàn)和搜索友好權(quán)衡時(shí),如果我們做到更好的體驗(yàn),也做到友好的搜索支持,既是一箭雙雕。

URL中的哈希(#號(hào))

單頁(yè)應(yīng)用只有一個(gè)頁(yè)面,視圖的變化通常是通過(guò)路由(route)來(lái)驅(qū)動(dòng),首先,我們先來(lái)談一談單頁(yè)應(yīng)用的URL中的#號(hào),很多采用單元結(jié)構(gòu)網(wǎng)站的URL都出現(xiàn)了這個(gè)符號(hào)。

"#"號(hào)在瀏覽器的URL中是一個(gè)錨點(diǎn),在當(dāng)前頁(yè)改變#號(hào)的參數(shù),頁(yè)面會(huì)跳轉(zhuǎn)到錨點(diǎn)所在的位置,通過(guò)JavaScript我們可以獲取到#號(hào)后的參數(shù):

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

改變#號(hào)后的參數(shù),頁(yè)面并不會(huì)重載,于是大多數(shù)的單頁(yè)架構(gòu)網(wǎng)站,都在URL中采用#號(hào)來(lái)作為當(dāng)前視圖的URL地址,例如:

example.com/#index //首頁(yè)視圖
example.com/#list //列表頁(yè)視圖
example.com/#list/1 //id為1的列表信息的視圖
Backbone.js就是通過(guò)改變#號(hào)參數(shù)來(lái)組織視圖,這里有一個(gè)demo可以很直觀的體驗(yàn)URL的變化。

看過(guò)這個(gè)demo,你或許會(huì)發(fā)現(xiàn)很熟悉的符號(hào)#!,Twitter曾在URL使用這個(gè)標(biāo)識(shí)。這個(gè)標(biāo)識(shí)是Google提出(AJAX 抓?。壕W(wǎng)站站長(zhǎng)和開(kāi)發(fā)人員指南1):

因?yàn)閺?fù)雜的單頁(yè)架構(gòu)頁(yè)面,對(duì)Google來(lái)說(shuō)抓取比較困難,于是給開(kāi)發(fā)者制定一個(gè)規(guī)范:

網(wǎng)站提交sitemap給Google;
Google發(fā)現(xiàn)URL里有#!符號(hào),例如example.com/#!/detail/1,于是Google開(kāi)始抓取example.com/?_escaped_fragment_=/detail/1;
_escaped_fragment_這個(gè)參數(shù)是Google指定的命名,如果開(kāi)發(fā)者希望把網(wǎng)站內(nèi)容提交給Google,就必須通過(guò)這個(gè)參數(shù)生成靜態(tài)頁(yè)面。

根據(jù)上面的demo,我簡(jiǎn)單示例一下Google要抓取的頁(yè)面的樣子:

http://119.28.4.22/?escapedfr...

如此以來(lái),就需要Server通過(guò)生成靜態(tài)的內(nèi)容以便Google抓取。

以下將簡(jiǎn)單介紹,單頁(yè)架構(gòu),爬蟲(chóng)訪問(wèn)根目錄時(shí)如果配置Server端的路由。

判斷爬蟲(chóng)

當(dāng)Google訪問(wèn)119.28.4.22/#!/detail/1 時(shí),會(huì)自動(dòng)轉(zhuǎn)化成http://119.28.4.22/?_escaped_...,以Nginx為例:

if ($args ~ _escaped_fragment_) {
   rewrite ^ /api;
}
/api為后臺(tái)服務(wù)的接口,已nodejs為例,代理設(shè)置如下:

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的訪問(wèn)重寫(xiě)到/api這個(gè)接口,然后在Server的/api處理請(qǐng)求把靜態(tài)內(nèi)容輸出即可。

sitemap

Gogole的這個(gè)規(guī)范,必須有sitemap支持,因?yàn)橛锌赡軉雾?yè)架構(gòu)的站點(diǎn),索引頁(yè)面也是JavaScript渲染的。提交sitemap時(shí),不用關(guān)注_escaped_fragment_這個(gè)參數(shù)名,只提交帶哈希符號(hào)的URL即可,例如:

http://119.28.4.22/#!/detail/1
weekly
0.5

結(jié)語(yǔ)

技術(shù)潮流的步伐很快,單頁(yè)應(yīng)用,URL哈希處理也沒(méi)渲染的方式實(shí)際上已經(jīng)流行了很久,在國(guó)外很多用戶數(shù)據(jù)較好的情況下,開(kāi)發(fā)者會(huì)選擇HTML5 History API的pushstate特性開(kāi)發(fā),在URL中拋棄#!。但是IE6、7等低端瀏覽器用戶情況較多的網(wǎng)站,#能夠很好的兼容。關(guān)于采用HTML5 History API來(lái)架構(gòu)單頁(yè)應(yīng)用的方案,也歡迎討論。

轉(zhuǎn)自:http://isux.tencent.com/seo-f...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/80862.html

相關(guān)文章

  • 搭建一個(gè)多頁(yè)面的無(wú)依賴的工程化項(xiàng)目

    摘要:也就是說(shuō),我們需要做一個(gè)非單頁(yè)應(yīng)用的工程化項(xiàng)目?,F(xiàn)在這個(gè)項(xiàng)目的靜態(tài)資源是以文件哈希值來(lái)控制的。這個(gè)該怎么解決呢感謝,我們可以通過(guò)如下的配置來(lái)實(shí)現(xiàn)意思就是如果圖片是在中引用的則不加哈希值,在文件中引入的則加上。 最近金拱門(mén)比較火,我們先戳開(kāi)它的官網(wǎng)看看。 看完后,如果你老板要是讓你做這么一個(gè)網(wǎng)站,一定要seo,一定要兼容IE,你會(huì)怎么去做呢? 用vue/react吧,單頁(yè)應(yīng)用滿足不了se...

    go4it 評(píng)論0 收藏0
  • 淺談CDN、SEO、XSS、CSRF

    摘要:要錢的簡(jiǎn)單理解百度的廣告就是不用錢的自己配置提高搜索引擎的權(quán)重是一種技術(shù),主要是用于提高網(wǎng)站瀏覽量而做的優(yōu)化手段為什么需要我們搜一下微信公眾號(hào)發(fā)現(xiàn)排名是有先后的,博客園都是靠前的。 CDN 什么是CDN 初學(xué)Web開(kāi)發(fā)的時(shí)候,多多少少都會(huì)聽(tīng)過(guò)這個(gè)名詞->CDN。 CDN在我沒(méi)接觸之前,它給我的印象是用來(lái)優(yōu)化網(wǎng)絡(luò)請(qǐng)求的,我第一次用到CDN的時(shí)候是在找JS文件時(shí)。當(dāng)時(shí)找不到相對(duì)應(yīng)的JS文件...

    asoren 評(píng)論0 收藏0
  • 淺談CDN、SEO、XSS、CSRF

    摘要:要錢的簡(jiǎn)單理解百度的廣告就是不用錢的自己配置提高搜索引擎的權(quán)重是一種技術(shù),主要是用于提高網(wǎng)站瀏覽量而做的優(yōu)化手段為什么需要我們搜一下微信公眾號(hào)發(fā)現(xiàn)排名是有先后的,博客園都是靠前的。 CDN 什么是CDN 初學(xué)Web開(kāi)發(fā)的時(shí)候,多多少少都會(huì)聽(tīng)過(guò)這個(gè)名詞->CDN。 CDN在我沒(méi)接觸之前,它給我的印象是用來(lái)優(yōu)化網(wǎng)絡(luò)請(qǐng)求的,我第一次用到CDN的時(shí)候是在找JS文件時(shí)。當(dāng)時(shí)找不到相對(duì)應(yīng)的JS文件...

    番茄西紅柿 評(píng)論0 收藏0
  • 淺談單頁(yè)應(yīng)用中前端分頁(yè)的實(shí)現(xiàn)方案

    摘要:在單頁(yè)應(yīng)用中,我們有很多中分頁(yè)方案,最常見(jiàn)的是無(wú)限滾動(dòng)上一頁(yè)下一頁(yè)和頁(yè)碼。本文將談?wù)勥@三種分頁(yè)方式。而前端方面,需要做更多的事情,同時(shí)要考慮當(dāng)前端數(shù)據(jù)丟失時(shí)如用戶刷新頁(yè)面的處理方案。 簡(jiǎn)介 分頁(yè)是開(kāi)發(fā)中最常見(jiàn)的需求之一。對(duì)于分頁(yè),我們討論的最多的是后端的數(shù)據(jù)庫(kù)分頁(yè),這關(guān)乎到我們應(yīng)用程序的性能,也是分頁(yè)這個(gè)需求的核心。而前端要做的,是把后端返回的數(shù)據(jù)呈現(xiàn)在頁(yè)面上,工作被認(rèn)為是簡(jiǎn)單瑣碎的。...

    denson 評(píng)論0 收藏0
  • 前端學(xué)習(xí)之路之SPA(單頁(yè)應(yīng)用)設(shè)計(jì)原理

    摘要:設(shè)計(jì)設(shè)計(jì)意義前后端分離減輕服務(wù)器壓力增強(qiáng)用戶體驗(yàn)預(yù)渲染優(yōu)化前后端分離前端做業(yè)務(wù)邏輯,后端處理數(shù)據(jù)和接口,耦合度減少,開(kāi)發(fā)效率提高。響應(yīng)瀏覽器的前進(jìn)和后退。代碼實(shí)現(xiàn)演示圖結(jié)上就是設(shè)計(jì)原理愿你成為終身學(xué)習(xí)者 SPA設(shè)計(jì) 1、設(shè)計(jì)意義 前后端分離 減輕服務(wù)器壓力 增強(qiáng)用戶體驗(yàn) Prerender預(yù)渲染優(yōu)化SEO 前后端分離:前端做業(yè)務(wù)邏輯,后端處理數(shù)據(jù)和接口,耦合度減少,開(kāi)發(fā)效率提高。 ...

    Crazy_Coder 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<