※ 引述《TonyQ (^^)》之銘言:
: ※ 引述《PsMonkey (痞子軍團團長)》之銘言:
: : 現在 #xxxx 就可以連到指定的 resource
: : (或著說,產生指定的 resource)
: : picasa 我沒用不知道,但是 gmail 是這樣子處理的
兩個例子:
http://picasaweb.google.com.tw/lh/view?q=cat&psc=G#5318136144069597426
http://mail.google.com/mail/#inbox/1244ba38306fd756
看起來是相同的處理方式
不過Google自己的服務都沒有用!#了 怎麼blog還建議用"!"
: : 於是這篇建議,要被 search engine 處理的 URL,就改成「!#=AJAX」
: : 更正確講,是 web server 裡頭的 headless browser 產生的 HTML 中
: : 要被 search engine 處理的 URL 要改成「?_escaped_fragment_=AJAX」
: : 大概是這樣
: 至於這份規格書所建議的撰寫方式則是在這樣的流程下額外增加一些東西.
: 這邊通常需要一些額外的輔助才做得到啦,
: 像我以前寫 jsp 時用的 decorator 就很適合這樣做.
: 我們剛剛總共有的步驟如下
: 瀏覽主要頁面(頁1,user.html) -> 發request -> 收response ->
: 處理後出現新的頁面(頁2)
: 然後新的處理步驟是這樣
: 瀏覽主要頁面(頁1,user.html) -> 發request
: -> (透過 a ) 將頁面標示錨點且用!開頭 (像是 #!page2 )
: -> 收response -> 處理後產生新的頁面 2 (此時url: user.html#!page2)
: 如果使用者直接連 user.html#!page2 ,
: 這個頁面要能夠直接顯示頁面2的內容 ,這邊是基本的 .
: 再來就是
: user.html?_escaped_fragment_=page2
: 應該要是產出靜態(無js輔助)只有內容的 html .
純html 不用js 無法動態產生內容吧
不用js 怎麼parse url 得到page2這個值 再去撈資料?
除非
1) *.html被controler mapping到*.php *.pl等等server side語言
2) 事先(批次)將所有可能用到的*.html output成一個一個檔案
user.html?_escaped_fragment_=page2 被視為要讀取user_page2.html
另外[_escaped_fragment_]這17個字元是可替換的?
例如可換成user.html?very_polite=page2
簡單講 連結要有不同的網址 對應到不同的內容
實際上 request/response收發的 通常都只是一整個網頁的小小地方/區塊
例如index.php/html/... 一直跟counter.php要上站人數統計
那些(AJAX暗地去撈的)小區塊資料 例如counter.php 就不需去做!#這類SEO的動作吧
因為我們不希望search engine找到counter.php 而是希望它去解析index.php
因為那些片段資料 是沒有足夠意義的 一定要整體看(index.php)才有意義
如此一來 search engine可能永遠不知道counter.php的存在
解析index.php時 counter.php的資料不會被放在index.php裡面
除非你去遞交counter.php的網址
或是要有一頁連結 專門就是呈現靜態資料(已撈完counter.php的index.php)
: 我的理解大概是這樣 ,
: 原則上這還是不脫之前所看到對search engine友善的討論...
: 覺得有誤的地方再提出來討論吧 XD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.122.30.140
※ 編輯: tomin 來自: 140.122.30.140 (10/13 12:35)