我第一次遇到这个问题还是在DHTML盛行的时代. 我们对浏览器无所不用其极, 加上各种动画菜单、3D标签(我们现在已经学会不再使用这些了), 但总有人告诉我们javascript不可用.
谁禁用了javascript
第一个要问的问题是这些javascript不可用的环境在哪里. 下面是一些可能的答案:
安全系统比如noscript或者公司代理过滤掉了javascript;
功能手机比如旧式黑莓(我还记得将旧式黑莓换到Opera Mini以获得总算还过得去的上网体验);
在移动应用环境中, 图片和脚本有时候会被拆分处理;
在流量有限或者接入很慢的区域中;
人们因为个人原因禁用了javascript;
讨厌广告弹出等强势广告的人.
就像你所看到的那样, javascript被禁用的原因多种多样, 有被动的, 也有主动的. 所以不能说只有乱用网络的人才会遭遇这样的问题.
为什么javascript会被禁用
像上面所列举的那样, javascript被禁用的原因多种多样. 如果它是被有意禁用的, 那么我猜主要原因无非以下三点, 即安全考虑、广告疲劳以及慢速连接.
安全考虑在情理之中. 几乎每一个在客户端的攻击都是使用的javascript(大多数情形下都是利用了插件的漏洞). Java当然是当前最大的安全漏洞, 但是通过javascript同样会对存在漏洞的网站或者不经保护或者过时的浏览器以及操作系统造成安全威胁.
慢速连接是个很有意思的原因. 非常讽刺的是, 我们使用javascript是为了加速客户端体验. 最初使用js的一个例子就是在客户端对表单进行验证从而避免服务器端不必要的工作周期.
如果你现在正处于一个很差的连接中(比如一个无线连接或者很差的3G连接), 你想要使用Google Reader或者Gmail, 你只能得到一个不完整的页面, 这时候只有使用低版本的才能更好工作.
为了两方都好
基于环境以及连接给用户最好的体验是非常好的. 这也是渐进增强(progressive enhancement)所研究的问题. 这也并非是很高深的东西, 它很简单, 并且是处于完全的实用主义.
使用事件授权这样的技术是非常简单的. 你可以通过点击父元素的handlers来写你自己的HTML, 使用innerHTML或者其他一些更新更快的技术.
为什么是这样一个问题
坦白说, 我也不太清楚. 或许是因为我太过时了, 或许是因为我已经一次有一次对浏览器和网络连接失望了, 或许是因为我只想更安全一些. 我只是不明白为什么人们只想要js的解决方案呢, 而实际上, js只是用来提供一些增强功能的.
费解的应用边缘案例
人们时常怀有疑问的是"应用需要javascript". 如果我们足够坦诚, 我们就会发现, 这样的应用实际上是很少的. 如果一定要说出一些, 我只能想到的是浏览器中的photoshop或者其他的一些编辑器(比如视频、浏览器中的IDE)才需要依赖于javascript. 其他都可以通过重新加载和服务器端的一些部件解决.
让我们直面这样一个事实——在Node.js的时代, 服务器端也可以用javascript来写. Dav Glass of Yahoo两年前显示如果一个工具库编写成余环境独立的, 那么你就可以同时在客户端和服务器端复用这些工具.
"应用需要javascript"的真正原因似乎是其他原因, 而非技术上的.
"应用需要javascript"的真正原因
正如禁用javascript可以有很多原因, 应用需要javascript也有很多原因.
당신은 JavaScript만 알고 있고 사람들이 브라우저를 업그레이드해야 한다고 생각합니다. 이는 이해할 수 있지만 이러한 견해는 매우 편협하며 쉽게 실패할 수 있습니다.
당신과 함께 애플리케이션을 구축하는 팀에는 서버 측이 없습니다. 저렴한 비용으로 애플리케이션을 구축할 수 있기를 원하지만 개발 시간과 비용이 두 배로 늘어날 수 있습니다.
가능한 한 빨리 애플리케이션을 작성하고 싶습니다. , 그리고 당신은 미래에 이 신청서를 다시 작성할 것임을 알고 있습니다. 특히 그것으로 인해 성공할 수 있다면 더욱 그렇습니다. 그리고 당신이 오랫동안 존재할 것이라는 사실을 사람들에게 알리지 마십시오. .
애플리케이션은 순수 js 환경에서 실행됩니다. 이는 물론 js를 사용하지 않고 애플리케이션을 완료할 필요가 없다는 것을 의미합니다. 그러나 Air 애플리케이션은 이 환경이 작동하는지 확인해야 합니다. 앞으로는 문제를 일으키지 마세요.
이 경우에는 js가 없는 사용자에게 제공하지 마세요. 이유와 방법을 설명하지 마세요. 그렇게 하지 못하고 더 실망할 수 있으므로 js를 활성화해야 합니다.) js를 사용하여 애플리케이션으로 리디렉션합니다.
요약
요컨대 자바스크립트 종속성 문제는 단순히 기술적인 이유만은 아니며 기존 기술 관행에 대한 의문을 제기하고 유지 관리에도 큰 영향을 미칩니다.
'사람들은 왜 js가 없나요'라고 묻는 대신 '왜 우리에게 js가 필요한가'라고 물을 수 있다면, 우리 기술이 잘 적응할 수 있다면 이 문제에 대한 논의는 더 생산적이 될 것이라고 말할 수 있습니다. 인터넷의 발전을 따라가지 못한다고 사람들을 비난할 이유는 없습니다.
브라우저에서 위젯을 활성화하거나 비활성화하여 문제를 해결할 수 있다는 것을 사용자에게 보여주는 것도 의미가 없습니다. .
아마도 노드가 성숙해지고 대중화되면 이러한 모든 문제는 더 이상 문제가 되지 않을 것입니다.
원본 링크: "자바스크립트를 사용할 수 없는" 경우