1.js和css的放的位置顺序与加载速度分析

为了让客户先看到效果,必须要先加CSS
如果在先head加载CSS,如果CSS大,会先下载CSS,再渲染HTML标签
如果CSS放在head中,当显示出HTML时,会正常的显示出前台效果
CSS不要放在body中,这样会显示效果是,会有问题,一显示页面是乱码,这样会让客户误以为当前网页有问题
 
JS存放问题
如果在head中放入js,会先加载JS,再渲染HTML,这样在速度上会大大降底,
必须要在第一时间向客户展现前台效果,再加载其它特效
 
所以最好JS是放在</body>之前,不在放在head中,
 
外部JS与内部JS,内部JS一定要放在外部JS前面。
-------------------------------------------------------

CSS文件后面的会覆盖前面的:如global.css会覆盖之前的样式表

JS文件后面的会引用前面的,如将global.js放在最开始,则会报一个找不到jQuery的错误,因此jQuery这种类库级的文件应该放到最开头。

-------------------------------------------------------

顺序一般是:

1. 个别特殊JS,比如用于调试的基础脚本(部署时未必有)、性能日志之类,必须放在尽量最前的位置。

2. 外部样式表(link[rel=stylesheet])

3. 本页样式(style)

4. 基础库,比如loader,各种shim/polyfill,jQuery之类的

注意,有些网站制作开发者从性能优化的角度倾向于加defer或者放到页面的最底部。不过不是所有的脚本都能这样做。比如html5-shim脚本必须在body之前加载。再如history api的兼容实现等都不应defer,因为你不能确保用户在页面ready之前没有back/forward动作。再如jQuery,defer是可以,但也意味着你所有依赖jQuery的功能都需要defer,考虑到这些静态文件通常都是有缓存的,所以不defer也未必不是一个可以接受的折衷。

5. 少量本页script

--------------------------------------------------------

可以看出嵌入JS会阻塞所有内容的呈现,而外部JS只会阻塞其后内容的显示,2种方式都会阻塞其后资源的下载。

--------------------------------------------------------

高性能web开发 - 如何加载JS,JS应该放在什么位置?

Web平台开发流程以及规范的更多相关文章

  1. flask实战-留言板-Web程序开发流程

    Web程序开发流程 在实际的开发中,一个Web程序的开发过程要设计多个角色,比如客户(提出需求).项目经理(决定需求的实现方式).开发者(实现需求)等,在这里我们假设自己是一个人全职开发.一般来说一个 ...

  2. 2022年Web前端开发流程和学习路线(详尽版)

    前言 前端侧重于人机交互和用户体验,后端侧重于业务逻辑和大规模数据处理.理论上,面向用户的产品里,所有问题(包括产品.设计.后端.甚至看不见的问题)的表现形式,都会暴露在前端,而只有部分问题(数据问题 ...

  3. 【转】Yeoman:Web 应用开发流程与工具

    原文转自:http://blog.jobbole.com/62098/ 随着 Web 2.0 和 HTML 5 的流行,现在的 Web 应用所能提供的功能和交互能力比之前传统的 Web 应用要强大很多 ...

  4. web前端开发CSS命名规范参考

    做为一个web前端工程师,每天接触HTML.css就像吃饭一样,但是作为一名合作.优秀的web前端工程师,对DIV+CSS命名还是有一定的规范的,本文整理了一份web前端开发中DIV+CSS各种命名规 ...

  5. WEB前端开发流程总结

    作者声明:本博客中所写的文章,都是博主自学过程的笔记,参考了很多的学习资料,学习资料和笔记会注明出处,所有的内容都以交流学习为主.有不正确的地方,欢迎批评指正 WEB前端开发项目流程总结 1.新建项目 ...

  6. web项目开发流程

    对于一个web项目,在实际编码之前,有一些通用的步骤来planning a website: 0.Defining the project (predr0->dr0) 对于外部项目,客户一般会发 ...

  7. 单页web应用开发流程

    用循环的视角审视Web应用开发 框定一个一致的SPA图形用户界面(GUI)和模型 将SPA的原则带回服务器端 聚集于对合适的应用进行早期SPA开发[3]  SPA协调的起点是认识到SPA与脚本和网页编 ...

  8. PC端Web项目开发流程

    从前一直再做前端,突然想到如果有一天领导让自己独立承担一个web 项目的话是否有足够的能力去接这个任务,要学会自己去搭建一些基础的工具信息.所有的这一切在心里都要有个大致的流程,不然真正做的时候难免会 ...

  9. web项目开发 之 前端规范 --- HTML编码规范

    此文严格按照W3C规范和部分实际项目可读性,浏览器加载,性能等众多属性权衡,做出平时前端编码规范文 档.供广大web工作者参考并实施,对维护和项目扩展升级都能省时省力. 转载请注明出处,JS前端实用开 ...

随机推荐

  1. Android 中退出程序的几种方法

    1.finish()方法 finish是Activity的类,仅仅针对Activity,当调用finish()时,只是将活动推向后台,并没有立即释放内存,活动的资源并没有被清理:调用finish()方 ...

  2. Scala数组操作实战详解

    增删改查,要注意的是,Array数组是定长数组,ArrayBuffer数组才是变长数组. 其他集合也存在可变不可变.例如,List,Set,Map 多维数组定义方法与Java类似.

  3. Ant Table组件

    http://www.cnblogs.com/hujunzheng/p/5689650.html React中使用Ant Table组件   v一.Ant Design of React http:/ ...

  4. LINUX常用命令-系统配置篇(二)

    学到一定程度了就会关注系统方面的一些配置,只是就需要相关的命令了.现在把Linux查看系统配置常用命令列出来 # uname -a # 查看内核/操作系统/CPU信息# head -n 1 /etc/ ...

  5. ODI KM二次开发手册

    ODI KM二次开发手册   分类: ODI(16) 目录(?)[+] 1 引言 1.1 编写目的 本手册面向的读者对象为具备数据集成业务知识及对ODI操作了解的开发人员,作为其完成基于ODI基础上K ...

  6. Oracle EBS-SQL (GL-1):从总帐追溯到接收

    SELECT je_header_id, je_line_num, trx_class_name, trx_type_name, trx_number_displayed, trx_date,comm ...

  7. 不显示BOM清单的版本

    应用 Oracle Bill Of   Materiel 层 Level Function 函数名 Funcgtion Name BOM_BOMFDBOM 表单名 Form Name BOMFDBOM ...

  8. 修改SlidingMenu,使其能够完美运行

    今天想给项目添加一个侧边栏的效果,使用到了https://github.com/jfeinstein10/SlidingMenu这个开源项目.项目本身可以通过github下载.此项目同时又依赖于一个名 ...

  9. 桂林电子科技大学出校流量控制器Android版1.0.0

    每次玩游戏的时候,总是要开着电脑挂着出校控制器,真是浪费国家资源啊,,, 突然想起学校有个开放流量的网页,无奈UC等浏览器真是尝试优化js脚本啊,挂在后台,不到几分钟就掉线了,悲剧啊~~~ 还好And ...

  10. saiku中默认级别all的国际化

    在制作saiku的schema文件的时候,当你选择层次的属性hasAll为true的时候,系统默认会为你的层次添加一个“(all)”级别,你无法给它增加一个caption属性来国际化它,因为他不是你创 ...