什么时候是从html标记中删除无js类的最佳时机
When is the best time to remove no-js classes from the html tag
我和大多数开发人员一样,喜欢知道什么时候使用js,什么时候不使用js。
然后,我几乎立即在标题下使用它,试图在页面设置样式之前将类从标记中删除,而不是在jQuery就绪函数中使用,以防止页面跳转。
<script>var a=document.getElementsByTagName("html")[0];a.className&&(a.className=a.className.replace(/no-js's?/, ''));</script>
这是不是,或者这不是一个好的做法,如果不是,它应该去哪里。来源支持你的答案,请!
考虑页面准备速度、用户体验和SEO。
当您可以安装无js样式表时,没有理由使用无js类。
<link href="/css/styles.css" type="text/css" rel="stylesheet" />
<noscript>
<link href="/css/nojs.css" type="text/css" rel="stylesheet" />
</noscript>
用javascript做这件事似乎有些不合时宜。您的javascript中会有一个任意行,它从一个元素中删除一个类,而这个类对所说的javascript来说毫无意义。更不用说渲染无js版本然后由于在渲染开始后删除类而渲染js版本的成本了。
使用无js样式表应该可以提高(即使只是稍微提高)网站js版本的性能,并让您可以自由移动和更改脚本,而不必担心它会影响无js类的删除,因为您的js不再与之有任何关系。
如果你绝对坚持用javascript来做这件事,我建议在上述元素之后立即用内联javascript来做。
<body class="no-js">
<script>
//document.body.className = "";
document.body.classList.remove("no-js");
</script>
在<head>
中是防止"未格式化内容闪烁"的最佳位置。甚至流行的Modernizr库也暗示了这一点:
我们建议将Modernizr放在头上的原因有两个:HTML5 Shiv(在IE中启用HTML5元素)必须在
<body>
之前执行,如果您正在使用Moderniz添加的任何CSS类,则需要防止FOUC。
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 要求未定义JS回调参数
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- 如何从Java/scala调用js美化程序
- 如何更改<svg>标记为<img>用js标记
- 如何使用 node.js 比较两个 json 数组
- chrome扩展:尽管运行了at:documentidle,js脚本还是过早启动
- 节点Js:How to catch a“;没有这样的文件或目录“;读取线模块出错
- 什么时候是从html标记中删除无js类的最佳时机
- Js-把握时机&冲突属性