當(dāng)前位置:首頁(yè)文章首頁(yè) IT學(xué)院 IT技術(shù)

Web開(kāi)發(fā)中需要了解的東西

作者:  來(lái)源:  發(fā)布時(shí)間:2011-12-7 10:47:24  點(diǎn)擊:
如果你的動(dòng)態(tài)頁(yè)面要使用 # ,那么請(qǐng)把其改成 #! ,而在服務(wù)端,你需要處理$_REQUEST["_escaped_fragment_"] 這是Google搜索引擎需要的。換句話說(shuō),./#!page=1 會(huì)被Google搜索引擎轉(zhuǎn)成 ./?_escaped_fragments_=page=1。 (陳皓注:通常來(lái)說(shuō)URL中的#后的東西都不會(huì)被傳到服務(wù)器上,所以,為了要讓Google可以抓取AJAX的東西,你需要使用#!,而Google會(huì)把 “#!”轉(zhuǎn)成“_escaped_fragment_”來(lái)向服務(wù)器發(fā)請(qǐng)求,Twitter的大量的鏈接者是#!的,比如:https://twitter.com/#!/your_activity)。另外,用戶也許會(huì)使用Firefox 或 Chromium, history.pushState({"foo":"bar"}, "About", "./?page=1"); 是一個(gè)很不錯(cuò)的命令。所以,就算是我們的地址欄上的地址改變了,頁(yè)面也不會(huì)重新裝載。這可以讓你使用 ? 而不是 #! 也能無(wú)刷地保住當(dāng)前的動(dòng)態(tài)的頁(yè)面,這可以讓AJAX的請(qǐng)求被瀏覽器記住。

別使用 “click here” 這樣的鏈接。這樣一來(lái),無(wú)法SEO,而且對(duì)于一些需要使用讀屏人來(lái)說(shuō)很不友好(陳皓注:關(guān)于讀屏軟件,可參看本站的“如果看不見(jiàn)你還能編程嗎”)

做一個(gè) XML sitemap,并放在網(wǎng)端的根下 /sitemap.xml. (陳皓注:這個(gè)文件可以讓搜索引擎了解你的網(wǎng)站圖)

當(dāng)你有多個(gè)URL指向同一個(gè)網(wǎng)頁(yè)的使用,使用 你可以使用 Google Webmaster Tools 來(lái)查看相關(guān)的問(wèn)題。

使用 Google Webmaster Tools 和 Yahoo Site Explorer.

安裝 Google Analytics (或是別的開(kāi)源的網(wǎng)站分析工具,如: Piwik).

了解 robots.txt 和搜索引擎爬蟲是如何工作的。

重定向請(qǐng)求 (使用 301 重定向網(wǎng)站) ,如果你要把 www.example.com 定向到 example.com(或是其它的變更) 這樣可以防止Google的rank因?yàn)橛蛎淖兓l(fā)生改變。(陳皓注:301重定向一般用作域名變更)

知道并不是所有的爬蟲都是好的,有些爬蟲的行為并不好。(陳皓注:比如向你的網(wǎng)站發(fā)大量的請(qǐng)求導(dǎo)致服務(wù)器性能低下)

如果你有一些非文本的內(nèi)容需要在 Google’s sitemap 中,比如視頻什么的。Tim Farley的答案,可以讓你看到很多有價(jià)值的東西。

技術(shù)

理解什么是 HTTP 比如 GET, POST, sessions, cookies等,了解什么是 “stateless” 無(wú)狀態(tài)。

讓你的 XHTML/HTML 和 CSS 符合 W3C 規(guī)范,并確認(rèn)他們都是 合格的。我們的目標(biāo)是避免瀏覽器的 “quirks mode”,并且可以讓其更容易地能和非標(biāo)準(zhǔn)的瀏覽器工作,比如讀屏器或移動(dòng)設(shè)備。

理解瀏覽器是怎么處理 JavaScript 的。(陳皓:你會(huì)看到有些Javascript代碼在頁(yè)面上前面,有些則是在后面,所以你需要對(duì)其了解清楚為什么是這樣)

了解瀏覽器是怎么裝載 JavaScript,CSS和其它資源的,了解其對(duì)視覺(jué)上的影響。(陳皓注:10年前我做網(wǎng)頁(yè)的時(shí)候因?yàn)镠TML還很弱,所以只能使用table來(lái)布局,使用table布局的問(wèn)題就是整個(gè)table讀完后頁(yè)面才會(huì)顯示,用戶的視覺(jué)體驗(yàn)并不好)。在某些情況下,你可能需要把你的腳本放在頁(yè)面的后面。

理解 JavaScript 的 sandbox 是怎么怎么工作的,尤其是你想使用iframes。

請(qǐng)注意 JavaScript 可能會(huì)被禁止,這樣會(huì)讓你的AJAX失效。就算是大多數(shù)用戶都開(kāi)啟了Javascript功能,但是也可能在一些情況下腳本是不被運(yùn)行的,比如移動(dòng)終端上,搜索引擎抓網(wǎng)頁(yè)的時(shí)候也并不會(huì)執(zhí)行你的腳本。

學(xué)習(xí) 301 和 302 轉(zhuǎn)向的區(qū)別 (這也是一個(gè)SEO的問(wèn)題).

盡可能多地學(xué)習(xí)你的部署平臺(tái)。(比如:操作系統(tǒng),Web Server:Apache/Nginx,防火墻,數(shù)據(jù)庫(kù),等等)

考慮使用一個(gè) Reset Style Sheet.

考慮使用 JavaScript 框架(如: jQuery, MooTools, Prototype, Dojo 或 YUI 3),它們會(huì)很好的兼容于不同的瀏覽器。(陳皓注:強(qiáng)烈推薦你看一下本站的開(kāi)源中最好的WEB開(kāi)發(fā)資源一文)

把視覺(jué)效果和JS框架合在一起討論,考慮使用一個(gè)Service,如:Google Libraries API 來(lái)裝載框架,這樣可以讓瀏覽器可能早就把這個(gè)JS框架已經(jīng)cache了而不需要再?gòu)哪愕木W(wǎng)站上下載了。

Bug fixing

明白你會(huì)花20%的時(shí)間寫代碼,而80%的時(shí)候在維護(hù),所以你要小心編碼。(陳皓注:參看本站的“多些時(shí)間可以少些代碼”一文)

設(shè)計(jì)一個(gè)好的錯(cuò)誤報(bào)告機(jī)制。

設(shè)計(jì)一個(gè)入口可以讓人們聯(lián)系到你并給你建議和批評(píng)。

為你開(kāi)發(fā)的東西形成文檔,這樣可以讓后來(lái)的人容易維護(hù)你的軟件和系統(tǒng)。

頻繁備份(也可確保你的這些備份功能正常) Ed Lucas 的回答 有一些忠告。你還需要有一個(gè)恢復(fù)策略,而不只是一個(gè)備份策略。

使用一個(gè)版本控制系統(tǒng)來(lái)保存你的代碼,如: Subversion 或 Git.

別忘了做Acceptance Testing,使用 Selenium 能幫到你。

確保你有足夠的日志,你可以使用 log4j, log4n 或 log4r。如果出了問(wèn)題,這是可以讓你快速找到問(wèn)題的方式。

當(dāng)你寫日志的時(shí)候,確保你記錄了你捕獲了處理和未處理異常。報(bào)告和分析日志可以讓你知道你網(wǎng)站的問(wèn)題。

這里有多的東西被省略了,并不是因?yàn)槟切┛赡懿皇怯袔椭拇鸢福且驗(yàn)槟切〇|西都太細(xì)節(jié)了,超出了這個(gè)問(wèn)題的范圍,因?yàn)檫@本來(lái)就是一個(gè)Web開(kāi)發(fā)需要了解東西的Overview。我想你可以去看一下其它人的答案,我有時(shí)間,我也會(huì)補(bǔ)充別人的答案進(jìn)來(lái)。請(qǐng)隨意編輯這個(gè)答案,因?yàn)榭赡苡行〇|西忘了,也有可能有些東西不對(duì)。

上一篇:Perl VS PHP常用代碼比較 下一篇:

文章評(píng)論

軟件按字母排列: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z