JavaScript优化及导航菜单背后的秘密 伍星

学习目标
1.进一步了解前端优化
学习如何编写良好的 JavaScirpt
2.通过导航的学习,了解JavaScirpt的应用
JavaScript在用户体验优化的实现中起着至关重要的作用
3.前端开发相关的工具和手段了解
了解JavaScript开发相关的工具和手段

目录 CONTENTS
1 回顾:HTML语义、CSS高级
2 编写高效的 JavaScript
3 认识导航菜单及其开发
4 导航菜单的性能加速
5 破解牛X导航菜单的秘密
5 JS的调试、压缩、混淆与破解

第一章:回顾:HTML语义、CSS高级
1 HTML语义
①网页的原理
人类看到的网页是文字和图片,计算机看到的网页是代码
②HTML语义
有些招聘要求:"深刻理解WEB标准..."
③语义例子
如何才能便于计算机理解你的代码

<p><b>优才网</b>的目标是:造就全栈工程师、成就未来CTO</p>
<p><strong>优才网</strong>的目标是:造就全栈工程师、成就未来CTO</p>

<div>全栈工程师</div>与
<span style="display:block">全栈工程师</span>

选择题
哪个是予以花的HTML结构的好处? C
A.样式丢失的时候能让页面呈现清晰的结构
B.便于不支持CSS的设备根据你的标记来"读"你的网页(比如盲人用的上网工具)
C.利于搜索引擎的爬虫抓取,爬虫依赖与语义标记来确定上下文和各个关键字的权重。
D.对浏览器兼容性更好
E.便于团队开发和维护

1 CSS渲染顺序
用一个例子来体验一下

html
head title "Web p..."
body div
h1 "Web p..."
p "This..."

1、渲染的顺序是从上到下
2、边下载边渲染
3、开启单独连接去取资源
4、后面的定义覆盖前面的
5、Reflow 和 Repaint

2 CSS渲染原理
浏览器如何渲染

页面渲染就是浏览器将HTML代码根据CSS定义的规则显示在浏览器窗口中的这个过程

得出三点CSS优化原则:
A、CSS放顶部
B、使用Sprite减少数据连接
C、JS的DOM操作优化原则

2 语言本身的注意事项
① 避免无意义的计算
②尽可能减少计算
③避免使用全局变量
④始终声明局部变量、无意识的全局变量是灾难

调试js "use strict"

④ 如何检测 isNaN
⑤ 了解坑、多少中 false, with 慎用?
⑥ 语句末最好加入分号
⑦ 字符窜拼接何为高效、没有固定范式

1 、 最大的性能问题,在于 DOM 操作
① 要使用高效的选择器
① 取 20000 次的对比
② 将选择器结果保存成为局部变量
① 取20000次的对比
③ 先操作再显示(想想渲染原理)
④ 先组装再附加到 DOM 上去
⑤减少页面 DOM 节点数
⑥ 将事件绑定与操作延迟

5.JavaScript优化及导航菜单背后的秘密的更多相关文章

  1. Javascript导航菜单13则

    来源:http://www.noupe.com/ajax/13-awesome-java-script-css-menu.html翻译:http://parandroid.com下面为你准备了13个利 ...

  2. JavaScript实战(带收放动画效果的导航菜单)

    虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏福:http://www. ...

  3. JavaScript(获取或设置html元素的宽,高,坐标),确定和判断鼠标是否在元素内部,二级导航菜单鼠标离开样式问题解决

    设置: document.getElementById('id').style.width=value    document.getElementById('id').style.height=va ...

  4. Smint – 用于单页网站制作的 jQuery 导航菜单插件

    Smint 是一款用于实现单页风格网站的 jQuery 导航插件,包含两部分:固定在页面顶部的精美导航条和能够在你点击的时候自动滚动到对应内容的菜单按钮.Smint 使用非常简单,只有一个参数用于设置 ...

  5. Blogs实现导航菜单

    #1.隐藏默认导航菜单 #header{display:none;} /*在页面定制CSS里面最前面添加如下代码,最好添加在最前面*/ #2.添加页首html代码 <!-- 添加博客导航栏信息开 ...

  6. php后管理分类导航菜单

    <!DOCTYPE> <html> <head> <meta http-equiv="Content-type" content=&quo ...

  7. 使用 jQuery 和 CSS3 制作滑动导航菜单

    这个下拉菜单可以让你的网站非常优雅,滑动框导航效果令人印象深刻.此外,子菜单框也可以与此集成起来以使其更具吸引力.导航是网站成功的关键之一,有吸引力的导航能够引导用户浏览网站中的更多内容. 效果演示  ...

  8. jq倾斜的动画导航菜单

    效果预览网址:http://keleyi.com/keleyi/phtml/jqmenu/index.htm 支持IE.Chrome.火狐等浏览器 完整源代码,保存到HTML文件打开也可查看效果: & ...

  9. jquery和css3实现滑动导航菜单

    效果预览:http://keleyi.com/keleyi/phtml/html5/15/ 有都中颜色可供选择,请使用支持HTML5/CSS3的浏览器访问. HTML源代码: <!DOCTYPE ...

随机推荐

  1. Android 两种注册、发送广播的区别

    前言:前面文章记录了Service的使用,这次来记录另一个四个组件之一的BroadcastReceiver.主要介绍两种发送和注册广播的区别. BroadcastReceiver广播接收者用于接收系统 ...

  2. [CentOS]怎样解决gcc版本号冲突?

    今天碰到一个比較坑爹的问题.在centos上用yum安装编译环境,执行: yum -y install make gcc gcc-c++ kernel-devel m4 ncurses-devel o ...

  3. django导出数据到excel

    import xlwt,StringIodef dumpData(request): #获取数据 activitys = Activity.objects.all().order_by('id') i ...

  4. SparkStreaming和Drools结合的HelloWord版

    关于sparkStreaming的测试Drools框架结合版 package com.dinpay.bdp.rcp.service; import java.math.BigDecimal; impo ...

  5. 获取input光标的x和y轴

    http://blog.csdn.net/kingwolfofsky/article/details/6586029 index.html <!DOCTYPE html> <html ...

  6. 解决phpmyadmin导入大数据库出现一系列问题

    在用phpmyadmin导入mysql数据库文件时,往往超过2M就会提示文件大,导入不成功.这时我们打开phpmyadmin-->libraries-->config.default.ph ...

  7. sphinx PDF 中文

    使用reST撰写文档时,需要分多个文档时,就必须使用sphinx了,sphinx说起来很简单的,但是默认是不是支持中文的.幸好我出生的晚,sphinx现在已经支持xelatex了^_^ 安装 除了pa ...

  8. java操作pdf

    使用pdf模板生成pdf 1,工具 Adobe Acrobat X Pro 2,pom文件配置 <dependency> <groupId>com.itextpdf</g ...

  9. JQuery如何获取按键的unicode编码?

    $("selector").keyup(function(xxx){ var myEvent = xxx; var code = myEvent.keyCode; alert(co ...

  10. 01 http协议概念及工作流程

    一:HTTP协议 重要性: 无论是以后用webserverice ,还是用rest做大型架构,都离不开对HTTP协议的认识. 甚至可以简化的说: webservice = http协议+XML Res ...