• 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;

  • 相关阅读:
    cocos2dx 将cocosbuilder输出文件映射成对象的原理
    网络游戏剧情副本的一种实现方式(上)
    2D游戏中的碰撞检测
    es学习笔记2:php版本es包
    go语法:参数传递
    go语法专题:信号量,iota,锁原理
    https协议原理与实现(整理中)
    我眼中的幸福
    戏剧的一天
    开通了
  • 原文地址:https://www.cnblogs.com/liangblog/p/5959728.html
Copyright © 2020-2023  润新知