JavaScript的理解记录(4)
客户端JavaScript:客户端就是Web浏览器;
一、 前奏:
Web文档(document):一些呈现静态信息的页面,虽然有的页面是会动的,但信息本身还是静态!
Web应用:可以动态载入信息,相比与文档的文本化,应用看起来更加图形化;
客户端JavaScript的三个重要的对象:Window Document和Element;Window是全局对象,它的属性和方法是全局变量和全局函数,其中里面的属性location指向Location对象,Location对象指定当前窗口的URL;属性document指向对象Document对象,通过document.getElementById('id')能获取到Element对象;
客户端Js被嵌入进HTML文档里面出来有 内联(直接在标签里面写),src引入,直接在html属性里面写,还有一种是,放在URL里面,以javascript:开头,使用的是javascript:协议。
要测试一小段js代码,可以直接在浏览器地址栏输入javascript:js代码; <a href="javascript:new Date().toLocaleTimeString()">呵呵呵呵</a> 这句话可以替换当前页面文档内容;
客户端js的时间线:
1、Web浏览器创建Document对象,并开始解析Web页面,解析HTML元素和文本内容后添加Element对象和Text节点到文档中,此时document的readystate属性的值是loading;
2、当HTML解析遇到没有async和defer属性的<script>元素时,添加这些元素到文档,然后同步执行脚本,在脚本下载和执行时,解析器会暂停。
3、当解析器遇到设置了async属性的<script>元素是,它开始下载脚本文件,并继续解析文档;解析器不会暂停,脚本下载完会尽快执行;
4、当文档完成解析,document.readystate的值变为interactive;
5、所有有defer属性的脚本,会按照他们在文档里的出现顺序执行;
6、浏览器在Document对象上触发DOMContentLoaded事件。
7、文档解析完成,等待其他内容载入(图片等),当所有内容完成载入且脚本完成执行,document.readystate属性改变为complete;Web浏览器触发Window对象上的load事件;
8、调用异步事件,响应用户操作;
获取浏览器类型和版本的方法:-
客户端:使用Navigator对象的属性;Window对象的navigator属性引用的是包含浏览器厂商和版本信息的Navigator对象,其中的一些属性如下:
appName:Wen浏览器的全称,在IE中,值为Microsoft Internet Explorer 其他浏览器中:Netscape ; 这个可以用来简单判断浏览器是否为IE;、
appversion: 浏览器版本,可以表示出是第几代浏览器。对于判断浏览器类型没有帮助;
userAgent: 浏览器在它的User-Agent Http头部中发送的字符串,这个属性包含大部分信息,通常用此属性来判断浏览器的类型和版本;简单判断方法如下:
var s = navigator.userAgent.toLowerCase();
判断s字符中的信息来获取浏览器信息: //webkit : Safari或Chrome ; opera: Opera ; mozilla: FireFox或者其他基于gecko内核的浏览器; mise: IE;
onLine:这个属性如果存在就表示浏览器当前是否连接到网络;
geolocation: Geolocation对象定义用于确定用户地理位置信息的接口;
JavaEnabled() :当浏览器可以运行Java小程序时返回ture;
cookieEnable(): 如果浏览器可以保存永久的cookie时,放回true;
服务端可以根据User_Agent头部信息获取;
客户端js框架:JQuery :几乎是基本的框架了; Prototype:可用于动画和各种特效; Dojo :UI组件多; YUI:yahoo的东西,与dojo差不多; Closure与GWT:都是Google的;
二、Window:
1、 弹出窗口测试代码:javascript:var name=prompt('your name?');if(confirm(name))alert(name);
2、客户端javascript有两个重要的对象,客户端全局对象处于作用域链的顶端,并且是全局变量和函数定义的地方。事实上,没有办法引用到真正的客户端全局对象,全局对象会在窗体载入新内容是被替换,替换的是全局对象的代理对象,HTML5称其为WindowProxy,其与真正的全局Window对象几乎没有区别;客户端的所有引用都是代理对象,即使是this;
JavaScript的理解记录(4)的更多相关文章
- JavaScript的理解记录(6)
---接上篇: 四.CSS相关: 1.CSS不支持注释// 支持注释/* */ 2. 几种浏览器厂商前缀: Firefox : -moz-; Chrome:-webkit- ; IE: ...
- JavaScript的理解记录(5)
---接上篇: 三.DOM解析: 1.Document Object Model(DOM):是表示和操作HTML和XML文档内容的基础API;其中几个重要的类有:Document和Element,Te ...
- JavaScript的理解记录(3)
---接上篇 一.函数: 1. 函数定义后直接执行:var f = (function(x){ return x*10}(10)); 2. 函数的调用有四种方式: 作为函数:作为方法:作为构造函 ...
- JavaScript的理解记录(2)
一.表达式与运算符: 1.对于属性访问表达式: var arr = {first:"hh","second":"gg",third:null ...
- JavaScript的理解记录(1)
1.JavaScript的数据类型分为两类:原始类型和对象类型: 原始类型包括:数字,字符串,布尔值,null和undefined; (都是不可变类型,值不可以修改) 对象类型:普通对象和函数: 函数 ...
- Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 如何实现发布--订阅模式? 发布---订阅模式的代码封装 如何取消订阅事件? 全局--发布订阅对象代码封装 理解模块间通信 回到 ...
- 第一百二十九节,JavaScript,理解JavaScript库
JavaScript,理解JavaScript库 学习要点: 1.项目介绍 2.理解JavaScript库 3.创建基础库 从本章,我们来用之前的基础知识来写一个项目,用以巩固之前所学.那么,每个项目 ...
- 《javascript个人理解,个人整理。》
万事开头难. 本人做前端工程师,已几年,没有特别大的,已文字方式去做总结. 前段时间,早已经想好,但是迟迟没有去下笔!好在现在陆陆续续的写下去. 我知道这是一个很大的工程,但是我还是想做下去,不为别的 ...
- 【转】Javascript中理解发布--订阅模式
Javascript中理解发布--订阅模式 阅读目录 发布订阅模式介绍 发布---订阅模式又叫观察者模式,它定义了对象间的一种一对多的关系,让多个观察者对象同时监听某一个主题对象,当一个对象发生改变时 ...
随机推荐
- Python地址簿
#!/usr/bin/python #coding=UTF-8 # FileName:address.py # Python地址簿 import cPickle as p; import os; im ...
- CentOS下mysql默认安装位置
如果采用RPM包安装,安装路径应在/usr/share/mysql目录下 mysqldump文件位置:/usr/bin/mysqldump mysqli配置文件: /etc/my.cnf或/usr/s ...
- 基本开题的感觉是了-MySQL继续继续(自定义函数&存储过程)
hi 感觉论文开题基本确定了,凯森 1.MySQL -----自定义函数----- ----基本 两个必要条件:参数和返回值(两者没有必然联系,参数不一定有,返回一定有) 函数体:合法的SQL语句:以 ...
- 谈谈Lucene和Solr索引存目录
在Lucene中,有几种索引存放模式呢?用过的人可能记得SimpleFSDirectory.MMapDirectory.NIOFSDirectory.RAMDirectory这四种.新版本的通过FSD ...
- Codeforces Round #282 Div.1 B Obsessive String --DP
题意: 给两个串S,T,问能找出多少的S的(a1,b1)(a2,b2)..(ak,bk),使Sa1---Sb1,...Sak---Sbk都包含子串T,其中k>=1,且(a1,b1)...(ak, ...
- PHP从数据库导出EXCEL文件
参考博客链接:http://www.cnblogs.com/huangcong/p/3687665.html 我的程序代码 原生导出Excel文件 <?phpheader('Content-ty ...
- Redis的安装和使用
Redis 安装redis: 将将要安装redis文件夹放到一个盘中 通过命令行切换到放文件的地方 安装成功后,将文件夹中的扩展放入wamp/php/ext中,然后配置php.ini,重启服务器. 使 ...
- [No000052]大蒜怎么吃最美容?吃大蒜的功效及禁忌
大蒜是最常见的香辛调味料,它被称为天然抗生素,富含大蒜素等多种营养物质和抗氧化剂,具有多种美肤美容作用. 大蒜的5种美容功效 1.除皱.大蒜里的某些成分,有类似维生素E与维生素C的抗氧化.防衰老特性, ...
- IDF实验室WORD隐写术
上帝也哭泣http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=48 下载下来,发现是一个word文档,看来信息应该就 ...
- Nuget自己打包引用的时候出现错误:Package is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package 1.0.1 supports: net (.NETFramework,Version=v0.0)
Nuget自己打包引用的时候出现错误:Package is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package ...