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里写写基本逻辑就行了,不 ...
随机推荐
- 消息队列数量统计(MSMQ,Performance Counter)
微软消息队列服务MSMQ (Microsoft Message Queue),工作在在线或者离线场景,并提供异步编程功能.互联网和企业开发很多场景应用,例如电商的订单处理流程,这是因为客户端不需要等待 ...
- DOM 的选择器 API
在刚开始的时候,我们只能用 getElementById,getElementsByClassName,getElementsByTagName 这几个 DOM 方法查找 DOM 树中的元素.后来,在 ...
- C#中提供的精准测试程序运行时间的类Stopwatch
C#中提供的精准测试程序运行时间的类Stopwatch http://www.cnblogs.com/ret00100/archive/2010/08/06/1793680.html 在需要对程序的执 ...
- BZOJ 1143: [CTSC2008]祭祀river 最长反链
1143: [CTSC2008]祭祀river Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline ...
- BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊 LCT
2002: [Hnoi2010]Bounce 弹飞绵羊 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOn ...
- hdu 5441 Travel 离线带权并查集
Travel Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://acm.hdu.edu.cn/showproblem.php?pid=5441 De ...
- 看原理图之UART
UART原理 协议类之间的通信就跟人之间交流一样,要遵守一定的原则:1.你说的话别人得听得懂,不能有语言障碍:2.你不能说的太快,别人都来不及反应. 对上面的话用专业点的语句描述下就是: 1.双方约定 ...
- yarn的基本组成和工作流程
yarn是负责资源管理的,协调各个应用程序的资源使用情况 一.基本组成 yarn主要由以下几个部分组成 1.resourcemanager 主要负责资源的调度和应用程序的管理 (1)调度器 调度器是将 ...
- iOS开发——数据持久化Swift篇&通用文件存储
通用文件存储 import UIKit class ViewController: UIViewController { @IBOutlet weak var textField: UITextFie ...
- N个数字中随机取m个数子,不重复
<script> function rand_nums(min,max,count){ var arr = []; for(var i=min;i<max;i++){ arr.pus ...