最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

javascript不可用的問題探究

 更新時間:2013年10月01日 14:13:20   作者:  
在Twitter上的一些有趣的討論中, 我發(fā)現(xiàn)人們對于Web應(yīng)用和站點對javascript的依賴普遍存在一種疑惑. 這種疑惑一直都存在, 而對我而言, 這個問題隨著瀏覽技術(shù)的飛躍發(fā)展而集中爆發(fā)了

我第一次遇到這個問題還是在DHTML盛行的時代. 我們對瀏覽器無所不用其極, 加上各種動畫菜單、3D標(biāo)簽(我們現(xiàn)在已經(jīng)學(xué)會不再使用這些了), 但總有人告訴我們javascript不可用.

誰禁用了javascript

第一個要問的問題是這些javascript不可用的環(huán)境在哪里. 下面是一些可能的答案:

安全系統(tǒng)比如noscript或者公司代理過濾掉了javascript;
功能手機比如舊式黑莓(我還記得將舊式黑莓換到Opera Mini以獲得總算還過得去的上網(wǎng)體驗);
在移動應(yīng)用環(huán)境中, 圖片和腳本有時候會被拆分處理;
在流量有限或者接入很慢的區(qū)域中;
人們因為個人原因禁用了javascript;
討厭廣告彈出等強勢廣告的人.
就像你所看到的那樣, javascript被禁用的原因多種多樣, 有被動的, 也有主動的. 所以不能說只有亂用網(wǎng)絡(luò)的人才會遭遇這樣的問題.

為什么javascript會被禁用

像上面所列舉的那樣, javascript被禁用的原因多種多樣. 如果它是被有意禁用的, 那么我猜主要原因無非以下三點, 即安全考慮、廣告疲勞以及慢速連接.

安全考慮在情理之中. 幾乎每一個在客戶端的攻擊都是使用的javascript(大多數(shù)情形下都是利用了插件的漏洞). Java當(dāng)然是當(dāng)前最大的安全漏洞, 但是通過javascript同樣會對存在漏洞的網(wǎng)站或者不經(jīng)保護(hù)或者過時的瀏覽器以及操作系統(tǒng)造成安全威脅.

慢速連接是個很有意思的原因. 非常諷刺的是, 我們使用javascript是為了加速客戶端體驗. 最初使用js的一個例子就是在客戶端對表單進(jìn)行驗證從而避免服務(wù)器端不必要的工作周期.

如果你現(xiàn)在正處于一個很差的連接中(比如一個無線連接或者很差的3G連接), 你想要使用Google Reader或者Gmail, 你只能得到一個不完整的頁面, 這時候只有使用低版本的才能更好工作.

為了兩方都好

基于環(huán)境以及連接給用戶最好的體驗是非常好的. 這也是漸進(jìn)增強(progressive enhancement)所研究的問題. 這也并非是很高深的東西, 它很簡單, 并且是處于完全的實用主義.

使用事件授權(quán)這樣的技術(shù)是非常簡單的. 你可以通過點擊父元素的handlers來寫你自己的HTML, 使用innerHTML或者其他一些更新更快的技術(shù).

為什么是這樣一個問題

坦白說, 我也不太清楚. 或許是因為我太過時了, 或許是因為我已經(jīng)一次有一次對瀏覽器和網(wǎng)絡(luò)連接失望了, 或許是因為我只想更安全一些. 我只是不明白為什么人們只想要js的解決方案呢, 而實際上, js只是用來提供一些增強功能的.

費解的應(yīng)用邊緣案例

人們時常懷有疑問的是"應(yīng)用需要javascript". 如果我們足夠坦誠, 我們就會發(fā)現(xiàn), 這樣的應(yīng)用實際上是很少的. 如果一定要說出一些, 我只能想到的是瀏覽器中的photoshop或者其他的一些編輯器(比如視頻、瀏覽器中的IDE)才需要依賴于javascript. 其他都可以通過重新加載和服務(wù)器端的一些部件解決.

讓我們直面這樣一個事實——在Node.js的時代, 服務(wù)器端也可以用javascript來寫. Dav Glass of Yahoo兩年前顯示如果一個工具庫編寫成余環(huán)境獨立的, 那么你就可以同時在客戶端和服務(wù)器端復(fù)用這些工具.

"應(yīng)用需要javascript"的真正原因似乎是其他原因, 而非技術(shù)上的.

"應(yīng)用需要javascript"的真正原因

正如禁用javascript可以有很多原因, 應(yīng)用需要javascript也有很多原因.

你只知道js并且認(rèn)為人們就應(yīng)該升級他們的瀏覽器. 這無可厚非, 但是這樣的看法是很狹隘的, 并且很容易失敗.
和你一起構(gòu)建應(yīng)用的團(tuán)隊沒有服務(wù)器端的技能, 你希望能以較低的代價完成這個應(yīng)用. 這或許有效, 但是這樣可能讓開發(fā)時間和資金都加倍. 要提前為這樣的開發(fā)做好規(guī)劃.
你想要盡快寫出應(yīng)用, 并且你知道以后你會重寫這個應(yīng)用的. 這是很常見的現(xiàn)象, 尤其是你可以因此而成功. 愿上天保佑你吧, 千萬別讓人知道你會待很久.
你的應(yīng)用會在一個純js的環(huán)境中運行. 這當(dāng)然意味著你沒必要不使用js而完成你的應(yīng)用. 一個很好的例子就是Air applications. 但你要保證這個環(huán)境在將來不出問題.
你的應(yīng)用確實需要js來運行. 如果真是這樣的情況, 就別將它提供給沒有js的用戶. 向人們解釋為什么以及如何做(盡量避免告訴人們他們需需要開啟js因為他們可能根本做不了而更加失望), 并利用js重定向到你的應(yīng)用.

總結(jié)

總之, javascript依賴性的問題不只是技術(shù)原因. 它對舊的技術(shù)實踐提出了疑問, 并且對于可維護(hù)性有很大影響.

可以說, 如果我們能問問"我們?yōu)槭裁葱枰猨s"而不是問"人們?yōu)槭裁礇]有js", 關(guān)于這個問題的討論會更有成效. 如果我們的技術(shù)能很好適應(yīng)不同需求的話, 去責(zé)備人們跟不上網(wǎng)絡(luò)發(fā)展是毫無意義的.

通過展現(xiàn)給用戶看他們能通過開啟或者關(guān)閉瀏覽器中部件來解決問題同樣是沒有意義的. 當(dāng)一個普通用戶卡在你的應(yīng)用中了, 這并不是一個告訴用戶發(fā)生了什么的做法.

或許所有這些問題在node變得成熟以及普及以后都不會再是問題. 我將很樂意看到這點.

原文鏈接:That "javascript not available" case

相關(guān)文章

  • Javascript的原型和原型鏈你了解嗎

    Javascript的原型和原型鏈你了解嗎

    這篇文章主要為大家詳細(xì)介紹了Javascript的原型和原型鏈,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • layui 實現(xiàn)表格某一列顯示圖標(biāo)

    layui 實現(xiàn)表格某一列顯示圖標(biāo)

    今天小編就為大家分享一篇layui 實現(xiàn)表格某一列顯示圖標(biāo)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • 基于rem的移動端響應(yīng)式適配方案(詳解)

    基于rem的移動端響應(yīng)式適配方案(詳解)

    下面小編就為大家?guī)硪黄趓em的移動端響應(yīng)式適配方案(詳解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • JavaScript中this詳解

    JavaScript中this詳解

    都說 JavaScript 是一種很靈活的語言,這其實也可以說它是一個混亂的語言。它把函數(shù)式編程和面向?qū)ο缶幊挑酆弦黄?,再加上動態(tài)語言特性,簡直強大無比,下面小編給大家介紹Javascript中this詳解,需要的小伙伴可以來參考下
    2015-09-09
  • JS實現(xiàn)多級菜單中當(dāng)前菜單不隨頁面跳轉(zhuǎn)樣式而發(fā)生變化

    JS實現(xiàn)多級菜單中當(dāng)前菜單不隨頁面跳轉(zhuǎn)樣式而發(fā)生變化

    本文介紹了JQuery巧妙實現(xiàn)多級菜單中當(dāng)前菜單不隨頁面跳轉(zhuǎn)樣式發(fā)生變化,實現(xiàn)方法非常簡單,感興趣的朋友一起看看吧
    2017-05-05
  • Javascript 生成指定范圍數(shù)值隨機數(shù)

    Javascript 生成指定范圍數(shù)值隨機數(shù)

    查手冊后才知道, 介紹的信息少得可憐吶, 沒有介紹生成 m-n 范圍的隨機數(shù)..., 就只是給你一個 Math.random() 了事.
    2009-01-01
  • javascript基于定時器實現(xiàn)進(jìn)度條功能實例

    javascript基于定時器實現(xiàn)進(jìn)度條功能實例

    這篇文章主要介紹了javascript基于定時器實現(xiàn)進(jìn)度條功能,簡單分析了javascript定時器的功能、使用方法并給出了基于定時器實現(xiàn)的進(jìn)度條功能實例,需要的朋友可以參考下
    2017-10-10
  • layui內(nèi)置模塊layim發(fā)送圖片添加加載動畫的方法

    layui內(nèi)置模塊layim發(fā)送圖片添加加載動畫的方法

    今天小編就為大家分享一篇layui內(nèi)置模塊layim發(fā)送圖片添加加載動畫的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重的幾種方法效率測試

    JavaScript數(shù)組去重是前端面試酷愛的問題,問題簡單而又能看出程序員對計算機程序執(zhí)行過程的理解如何。數(shù)組去重的方法有很多,到底哪種是最理想的我不清楚。于是我測試了下數(shù)組去重的效率。測試二十萬個數(shù)據(jù),隨著數(shù)據(jù)越多效率很明顯的就體驗了出來。下面來一起看看吧。
    2016-10-10
  • js正文內(nèi)容高亮效果的實現(xiàn)方法

    js正文內(nèi)容高亮效果的實現(xiàn)方法

    這篇文章介紹了js正文內(nèi)容高亮效果的實現(xiàn)方法,有需要的朋友可以參考一下
    2013-06-06

最新評論

泗水县| 乌鲁木齐市| 平阳县| 黄冈市| 时尚| 景谷| 沙河市| 孟州市| 南木林县| 淮南市| 丹江口市| 甘孜县| 遂宁市| 安龙县| 揭西县| 亳州市| 宁阳县| 印江| 克山县| 屯留县| 共和县| 光山县| 二连浩特市| 潢川县| 西乌珠穆沁旗| 宿松县| 大理市| 五华县| 图木舒克市| 老河口市| 武义县| 张掖市| 兰溪市| 龙井市| 凌云县| 贡觉县| 邢台市| 从化市| 绍兴县| 吉安市| 蓬安县|