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里写写基本逻辑就行了,不 ...
随机推荐
- MySQL通过RPM安装
以前写过一篇文章,RedHat Linux 6.1 安装MySQL,本文是从解决依赖的角度上再次描述如何在Linux下以RPM包方式安装MySQL. [root@serv01 ~]# ls /iso/ ...
- [C#源码]VS各版本转换器(支持VS2012,VS2013)
项目名称:[C#源码]VS各版本转换器(支持VS2012,VS2013) 下载内容: (C#源码)VS各版本转换器 实现功能: 支持vs2003-vs2013的各版本转换,由高到低,由低到高都支持. ...
- BZOJ 2257: [Jsoi2009]瓶子和燃料 裴蜀定理
2257: [Jsoi2009]瓶子和燃料 Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/p ...
- 在Linux下安装C/C++开发工具包的最佳方式
假设你使用的是Fedora, Red Hat, CentOS, 或者 ScientificLinux 系统,使用以下的命令安装GNU的C/C++开发包和编译器. # yum groupinstall ...
- Oracle DB 执行表空间时间点恢复
• 列出在执行表空间时间点恢复(TSPITR) 时会发生的操作 • 阐释TSPITR 使用的术语的定义 • 确定适合将TSPITR 用作解决方案的情况 • 确定时间点恢复的正确目标时间 • 确定不能使 ...
- 【每日一摩斯】-【序列】-续-RAC and Sequences (853652.1)
一个简单的sequence有什么可以说的呢?如果再这样认为就大错特错了... 也许以下几点高人们都很清楚,但至少对于我来说,之前是陌生的,或者说是忽略的. 1.CREATE SEQUENCE seq; ...
- Android高手进阶教程(七)之----Android 中Preferences的使用!
http://blog.csdn.net/Android_Tutor/article/details/5531849 大家好,我们这一节讲的是Android Preferences 的学习,Prefe ...
- AT-Activity
关于Activity的粗略翻译 原地址:Activity 类概述: Activity是独立的.突出的可被用户操作的东西.几乎所有的Activity都是与用户进行交互的,所以这些Activity会很小 ...
- case,cast
UPDATE dbo.Dat_Camera SET Cam_Config='<xml><cam><type>2</type>'+CASE WHEN Ca ...
- posix thread线程
1. pthread线程通过调用你提供的某些函数开始.这个“线程函数”应该只有一个void*型参数,并返回系统的类型.2. 通过向pthread_create函数传递线程函数的地址和线程函数调用的参数 ...