zoukankan      html  css  js  c++  java
  • 禁用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早已经不是用来增加动态效果那么简单的脚本语言,它已经成了前端发展最重要的一环,切勿迷失在新技术的红海里,选择合适的技术做合适的功能,做之前多做一些思考,这就是我想说的。

  • 相关阅读:
    Oozie_02安装遇到错误【20161116】
    Oozie_01安装教程【20161116】
    hadoop2.x常用端口及定义方法
    谷歌浏览器怎么调试js 谷歌浏览器调试javascript教程
    找回密码(一)【实际项目】
    解决使用SecureCRT出现的Generic clipboard failure错误【自己亲身经历】
    [php]php总结(2)
    [php]php总结(1)
    [php]php时间格式化
    [hadoop]mapreduce原理简述
  • 原文地址:https://www.cnblogs.com/wangmeijian/p/10009645.html
Copyright © 2011-2022 走看看