Web開發中那些不招人“待見”的功能
網際網路上優秀的Web開發案例不勝列舉,但也有一些開發者費勁心血開發出的網站僅因為某些功能就遭到吐槽的也屢屢不鮮。這不,原文作者Scott Hanselman發表的這篇文章《Stop Doing Internet Wrong》就例舉了網際網路上那些不招人“待見”的功能。當然,文中提及的這些問題都是可以解決的,因為從技術角度上來講,它們並不難。我們一起來看下,“有則改之,無則加冕”。
文章譯文如下:
1. 向移動主頁重定向桌面深層鏈(Deep Link)
谷歌已經決定採取深層鏈的做法比如foo.com/something/deep用以檢測移動裝置,然後重定向使用者host檔案m.foo.com。事實上,GoogleBot宣告這些“ 錯誤重定向”並通過搜尋引擎搜尋的結果來給網站排名。
簡單地說,避免不相關的重定向其實很簡單:比如智慧手機使用者從桌面頁面重定向到智慧手機優化頁面。智慧手機只顯示有重要的內容,自動遮蔽了無關緊要/不相干的頁面。例如,我想進http://www.mcmenamins.com/Pubs頁面,但前提是想在手機上開啟該頁面,而將它重定向到/mobile即可。
PS:縱深鏈(deeplink),又稱深層鏈、深度鏈,即通過網站的分頁地址設定連結,略過所在網站的廣告主頁,直接將使用者導向某個分頁。比如搜尋引擎中搜尋結果多是這種連結。埋置鏈和深層連結不僅會引發版權侵權問題,也會涉及不正當競爭。
2. 我不想要你的蹩腳應用
這就好比Quora,假設我現在通過瀏覽器瀏覽,除非要進入App Store,否則一直停留在Web頁面。
3. 超大的插播廣告
在Forbes.com上我看到這個巨大的插播廣告。
請保持優雅!
4. 標籤輸入形式
我討厭看到一個核取方塊,並且只能點選核取方塊內容。
<p>Which fruit would you like for lunch?</p> <form> <input type="radio" name="fruit" id="banana" /> <label for="banana">Banana</label> <input type="radio" name="fruit" id="None" /> <label for="none">None</label> </form>
很簡單,增加與標籤相關的輸入,那麼使用者就有獲得更多的點選。
5. 打破超連結
難道我們沒學習《 Cool URIs Don't Change?》嗎?這篇文章寫於1998年且真實存在。正如我們所知,Web建立於1990年,1993年才真正開放首個 Web頁面連結。
我們需要通過.htaccess files、 web.config files維護重定向列表並儘量對其測試。雖然深度維護複雜的連結可能會很複雜,但你可以將companyname.com/about鎖死,這是因為你從PHP切換至Rails的原因。作為使用者,我習慣輸入/about。請不要給我“更新書籤”,我來這兒可不是為了做這個。
6. 點選國旗,代表你所選語言
我經常被要求從各個國家國旗列表中“選擇語言”。用國旗來代表語言這是很槽糕的做法,我想,不只是我一人這麼認為。
Accept:text/html Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8
在Accept-Language header有個整體的語言列表,可供你選擇。
7. 你知道我的郵政編碼,可為什麼還要填寫國家?
對於生活在美國的人,我們總是被要求輸入郵政編碼(郵遞區號)、城市及國家,儘管有大量的API和資料庫可以為你提供資訊。
如果你能從使用者那獲取可靠的資訊(語言、位置、國家、愛好),前提是在沒有侵犯對方隱私的前提下,請為他們節省些時間吧!
8. 通過寬度、高度屬性調整超大圖片尺寸
也許你需要花一點時間來告之老闆,利用佳能EOS拍攝的六百萬畫素圖片並不很適合企業網站背景圖,尤其是隻有4MB JPGs大小。
Ok,沒關係,我們可以設定<img src="bigassfile.jpg" width="100" height="100">,這樣圖片就會縮小了。但不支援下載超大檔案,在客戶端上通過瀏覽器來調整尺寸大小;或者通過 PNGGauntlet或 PNGOut執行所有的PNGs,缺點是調整大小,經常會使圖片變形。
9. 伺服器頁面的兩種形式:WWW.和裸域
如果你見過example.com/something和www.example.com/something兩種連結提供相同的內容,考慮到URL的規範化,你可以這樣做,在META標籤中使用rel="canonical",但只會隱藏問題。
那為什麼不挑選一個或者提供伺服器301重定向到其他頁面呢?你知道建立IIS7的規則嗎?你甚至可以刪除.aspx 副檔名。
如果你為for / and /default.html做同樣的事情,如果可以的話,只選擇一個並重定向到其他域名。
<system.webServer> <rewrite> <rules> <rule name="CanonicalHostNameRule1" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTP_HOST}" matchType="Pattern" pattern="^hanselman\.com$" ignoreCase="true" negate="false" /> </conditions> <action type="Redirect" url="http://www.hanselman.com/{R:1}" redirectType="Found" /> </rule> <match url="blog/default.aspx" /> <action type="Redirect" url="blog/" redirectType="Found" /> </rule> <rules> <rewrite> <system.webServer>
英文連結:Hanselman
相關文章
- 【開發技巧】再見,BLE的那些坑!
- web前端開發框架那些事Web前端框架
- Web前端群招人啦!Web前端
- Android開發中Kotlin之於java那些不一樣的功能AndroidKotlinJava
- Web 開發 17 年的所見所得Web
- Web開發常見性的錯誤Web
- 前端進階(一)掌握Web API,開發常見的頁面互動功能前端WebAPI
- Android開發中,那些讓你相見恨晚的方法、類或介面Android
- 郵件功能中的那些事
- 10 大常見的web開發錯誤Web
- 那些常見的Web前端學習誤區分享!Web前端
- Web開發的窘境:碼還是不碼?Web
- WEB開發的需求溝通並不難Web
- web開發中的路徑Web
- 細數 Win 10 開發實現的那些牛逼功能
- 開發一個 Web App 必須瞭解的那些事WebAPP
- 常見Web開發漏洞解決方法Web
- 走向Web3.0,瀏覽器功能待加強Web瀏覽器
- WEB應用開發中的ServletWebServlet
- WEB開發中的cookie與sessionWebCookieSession
- web開發中公用元件的開發之一DateUtils .Web元件
- 【代友招人】java開發核心人員(上海)Java
- iOS開發中遇到的那些坑,持續更新iOS
- web開發中圖形Web
- 前端開發技巧-那些不常見但十分有效的小玩意前端
- 多執行緒中那些看不見的陷阱執行緒
- Web快速開發平臺個人之淺見Web
- DELPHI開發Web程式常見問題 (轉)Web
- 敏捷開發的那些事敏捷
- iOS開發的那些坑iOS
- 關於SQL開發規範中的那些誤區!SQL
- 開發中hive常見的調優策略Hive
- Python中WEB開發(一)PythonWeb
- python web專案開發常見步驟PythonWeb
- Android初級躲不開的那些坑Android
- 何為開源,聊聊軟體開發中的那些開源協議協議
- web前端CSS開發中的10個不要Web前端CSS
- Java Web開發中的名詞解釋JavaWeb