禁用JavaScript之后,你的網站表現如何?


最近要做一個新官網,需求評審完之后,考慮到官網都是純靜態頁面,功能簡單,操起vue-cli3幾秒內創建好了項目腳手架,開發前,我打開了首頁模板文件,看到下面這行字,有了一些思考……

<noscript>
	<strong>We're sorry but **** doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
(ps:四個*是項目名,略去了)

JS最初是用來給界面添加交互的,近幾年,前端火的原因則主要是因為JS,新技術絕大部分都是基於JS,隨着MVVM框架的興起,前端越來越依賴JS,就像現代工業依賴電力一樣,JS甚至一定程度上替代了HTML,使得前端開發者在開發大型項目上更方便快捷了,目前看起來一切都很好,嗯,事實上真的很好嗎?

我想說什么呢,回到本文開始的那行代碼,它的作用顯而易見,禁用了JS的用戶去訪問這個網站,就會看到這行提示:當前項目離了JS就跑不起來,請開啟JS后繼續訪問。當網絡很慢的情況下,JS還沒加載出來(或者干脆用戶禁用了JS)那段時間,網站變得一片空白,完全無法訪問,這正常嗎?顯然這是不可接受的,從程序的可訪問性、容錯性來評分,這個網站的得分肯定是不及格的!

來看幾家比較知名的企業官方網站,在禁用掉JS后表現如何?

小米官網 測試日期2018-11-26

小米官網容錯性測試

測試結果:基本功能無法使用,導航顯示但無法點擊


魅族官網 測試日期2018-11-26

魅族官網容錯性測試

測試結果:基本功能無法使用,導航不顯示


錘子官網 測試日期2018-11-26

錘子官網容錯性測試

測試結果:基本功能無法使用,頁面一片空白


測試結果很不理想,會有人說,用戶能禁用JS就能啟用JS,和開發者沒關系,不必為此做特殊處理。這種想法顯然站不住腳。

上面幾個隊友做的不太好,有沒有做得比較不錯的?

Apple官網 測試日期2018-11-26

Apple官網容錯性測試

測試結果:90%的功能正常使用,導航顯示且可以點擊切換

Apple:不是我多優秀,全靠同行襯托!

果然沒有對比就沒有傷害。同類型的網站,功能大體相同,Apple.com在干掉了JS的情況下仍然可以正常訪問90%的內容,可訪問性優。

其他包括tencent.com、360.com等網站這方面也做的不錯,就不放圖了。


會有人問,誰會去禁用JS?

禁用JS的場景包括但不限於以下幾個場景

對我們開發者來說,用戶的行為是不可控的,當然你可以選擇簡簡單單給個提示讓用戶開啟JS再訪問,對程序員來說,開啟JS腳本很容易,但對千千萬萬計算機小白用戶來說,並不是那么簡單,如果你的網站對他們不是那么重要,他們會選擇關閉頁面

不管主動禁用還是被動禁用,禁用的原因各種各樣,總結起來無非三點:安全原因、廣告騷擾、網絡限制。

既然JS被禁用的場景客觀存在,在項目開發前,根據項目實際情況考慮以下原則:

  • 根據實際情況選擇合適的技術方案
  • 能用CSS實現的,優先使用CSS

現在MVVM大行其道,但不是什么項目都適合用MVVM框架,JS熱火朝天,也不能什么交互都上JS,JS在很多情況下不是必須的,假如要做一個官網,就不建議用單頁應用,用JS做路由,JS掛了,頁面就白屏,另外SEO也是個問題,錘子的官網就是單頁應用。

一般圖片輪播都用JS實現,不考慮低版本瀏覽器的話,CSS3一樣可以做輪播圖,導航下拉效果,完全可以用鼠標hover父級元素display子元素的方式實現(以上三家國產手機廠商都是用的JS),元素定位,大部分情況也不需要用到JS。

今時今日,JS早已經不是用來增加動態效果那么簡單的腳本語言,它已經成了前端發展最重要的一環,切勿迷失在新技術的紅海里,選擇合適的技術做合適的功能,做之前多做一些思考,這就是我想說的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM