2 JavaScript应用开发实践指南
JavaScript 语言在浏览器中的运用
- HTTP请求,加载HTML后根据内容加载CSS等,大部分浏览器默认2个下载链接. HTML元素要尽可能简洁,不需要将Table元素变成多个div, css代码经常被拆分成文件结构中的数个模块,使用时进行合并. 引入了一个以上的CSS文件可能会导致性能问题, Tips: 多个文件,多个请求.
-
JavaScript 相比其他元素受到特殊照顾, 只要用HTTP请求来获取这种文件时, 其他资源的下载都会停止. JavaScript 文件下载完毕之前, 它们都得等着.
JavaScript本身不会阻塞网站的加载过程, 造成这个问题的根本原因在于浏览器加载javascript源文件所使用的机制.
通常,我们会将浏览器看不见的东西, 例如
<meta>元素, <title>元素, DOCTYPE, 网站图标(favion)以及外部CSS文件统一放置于元素或者文档内部. 这样等到浏览器开始渲染的时候, 资源就已经准备好了. BUT 浏览器渲染好网页之前会出现一段时间空白, 这是因为在JavaScript元素在元素中被引入, 解决办法: 将js文件置于页面末尾.- Js文件代码的主要功能: 1.修改HTML文档;2.与服务器通信;3.存储数据
- js文件与css配合使用, js获取元素后增加button事件, 给元素增加上clsss.
- Js辅助开发工具
- 语言内置
console对象工具 - 浏览器中的工具. YUI 压缩Js程序所占的文件大小, 极大提高运行速度.
JSLint 会挫伤你写代码的积极性.JSLint这个工具会分析你的代码问题.
- 语言内置
Js术语解析
基本术语
- 文档对象模型(DOM), 三种关系: 父节点(parent), 子节点(child), 兄弟节点(sibling).
- 变量.
- 局部变量, 定义在函数内部, 通过
var关键字来声明. 如:var var1. - 全局变量. 在函数外用
var声明, 定义的变量加入window对象, 不使用var关键字,需要时直接定义 三种方式. 谨慎使用全局变量 , 其用来描述不会发生改变的值, 也可以用来表示整个JavaScript源文件中需要多次引用使用的值.
- 字符串.
引号(成对的半角单双引号)括起来的值一定是字符串. 赋值给某个变量后, 会忽略其值, 直接作为做服从. 在操作数学运算时, 要尤其注意这个问题. - 注释, 单行注释// , 多个行之间注释/* */
- 操作符: + - * / ++ – =
- use stick指令. 函数定义中插入. 用来使用解释器采用更为严格的规则来执行脚本, 类似于HTML或XHTML中使用的doctype(文档类型声明). Tips: 现在经常作为一条JavaScript的最佳实践原则, 示例代码如下:
fuction getFamilyMemberNames(){"use strict";/* the rest of your function code goes here*/}
- 数据存储方式.
- 缓存. 变量被声明后多次使用, 即被缓存, 如果只用一次, 则直接使用值更快写. 如果多次最好使用变量声明赋值的方式缓存起来, 提高效率.
- 数组. [‘1’,’2’,’3’]这种方式存储, 方便JavaScript解析, 经常出现在Ajax调用里面.
- cookies和session. 存储与客户端和服务端.
- JavaScript对象表示法. JSON也是一种易用同JavaScript集成的数据格式, 通常在用JavaScript调用服务时使用的.
{"family":["joan","2"]}
- 对象. 距离将数据放在对象中. `要创建一套面向的JavaScript代码编写与管理模式, 首先要掌握这种方式.
var grandmother ={"first-name":"anna","last-name":"ddd"};
2 JavaScript应用开发实践指南的更多相关文章
- 一 JavaScript应用开发实践指南
渐进增强模型 总述: 结构层(Structure),表现层(presentation)与行为层(behavior). HTML,CSS,JavaScript. 只有HTML 的情况下也可以显示内容,C ...
- 2.1 JavaScript应用开发实践指南
创建交互层 循环 示例代码如下: var people = family, peopleCount = items.length, i; if(peopleCount>0){ for(i=0; ...
- 精通BIRT:Eclipse商务智能报表工具开发实践指南
http://blog.csdn.net/birtbird/article/details/8935520 [置顶] 精通BIRT:Eclipse商务智能报表工具开发实践指南 分类: BIRT 201 ...
- OpenGL ES应用开发实践指南:iOS卷
<OpenGL ES应用开发实践指南:iOS卷> 基本信息 原书名:Learning OpenGL ES for iOS:A Hands-On Guide to Modern 3D Gra ...
- lua游戏开发实践指南学习笔记1
本文是依据lua游戏开发实践指南做的一些学习笔记,仅用于继续自己学习的一些知识. Lua基础 1. 语言定义: 在lua语言中,标识符有非常大的灵活性(变量和函数名),只是用户不呢个以数字作为起始符 ...
- 【SpringCloud技术专题】「Gateway网关系列」(3)微服务网关服务的Gateway全流程开发实践指南(2.2.X)
开发指南须知 本次实践主要在版本:2.2.0.BUILD-SNAPSHOT上进行构建,这个项目提供了构建在Spring生态系统之上API网关. Spring Cloud Gateway的介绍 Spri ...
- 《Lua游戏开发实践指南》读后感
书籍地址:http://book.douban.com/subject/20392269/ 一句话点评该书:想用Lua作游戏脚本开发的同学值得一读! (一)本书特点 市面专门讲Lua的中文书籍非常少, ...
- 1. 初次尝试Core Data 应用程序(Core Data 应用开发实践指南)
本书以实践的方式讲解 Core Data,不会过早讲一些难懂的话题.从入门知识入手,演示如何为范例程序添加Core Data 支持,后续章节再依次讨论更复杂的话题. 1.1. Core Data 是什 ...
- 读Lua游戏开发实践指南
11月11日开读,到今天正好一个月. 起因是被裁员之后,发现很多公司都在使用lua编写cocos2d-x游戏,原因是上手快,技术人员比较便宜. 如果引擎封装比较好,几乎在lua里写写基本逻辑就行了,不 ...
随机推荐
- 【Stage3D学习笔记续】山寨Starling(一):从事件说起
我在GitHub上新开了一个项目:https://github.com/hammerc/hammerc-study-Stage3D 山寨的Starling版本我取名叫做Scorpio2D,以后的笔记中 ...
- Java NIO 备忘
$.backlog:可以把它简单理解为一个 listening socket 的请求连接队列的限制.当队列中的连接请求达到队列限制时,kernel 会拒绝信的连接请求.只有当应用程序通过 accept ...
- VB操作CAD
Dim xlapp As Excel.Application Dim xlbook As Excel.Workbook Dim sheet As Excel ...
- 如何在64位系统上安装SQL Server 2000
如何在64位系统上安装SQL Server 2000? 现在用SQL Server 2000数据库的人少了吧?大都是SQL Server 2005/2008了.不过还是有需求的,今天一朋友就让我在他的 ...
- IEnumerable和IEnumerator 详解
初学C#的时候,老是被IEnumerable.IEnumerator.ICollection等这样的接口弄的糊里糊涂,我觉得有必要切底的弄清楚IEnumerable和IEnumerator的本质. 下 ...
- OC/Swift第三方添加出错解决方法
(未经同意,不得转载!) ------------------------华丽分割线-----------------------
- Dev 等待提示 WaitDialogForm 升级版
本文转载:http://www.cnblogs.com/VincentLuo/archive/2011/12/24/2298916.html 一.Dev的等待提示框 ...
- jboss7的服务器开启和关闭命令
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- SQLSERVER中返回修改后的数据
在公司看到同事写了个SQL2005的新特性的文章,觉得很实用,在这里和大家分享下. 这种技术主要是用到了inserted和deleted虚拟表,这两张表相信大家都很熟悉.以前我们主要是在触发器中使用. ...
- 关于expanded一级二级菜单数据的分组排序
最新再弄关于expandedlistview相关的东西,所以需求是需要对一级菜单根据时间排序,同时二级菜单也需要根据时间排序,距离现在最近的时间显示在最前面. 效果就是如下: --group2 -- ...