JS18

作者: 社会你码ge | 来源:发表于2017-06-19 22:34 被阅读0次

表单form 

        获取方法

           1.通过id

           2.通过name

           3.document.forms;

        属性

           elements  --所有的表单元素

           document.myform.elements[0]  获取form第一个表单元素

        方法

           submit() document.myform.submit(); --可将按钮放在form外面提交

           reset() document.myform.reset(): --可将按钮放在form外面重置

按钮button

        方法:

            1、focus()

            2、blur()

            3、click() --设置按钮被点击

单选框复选框

        方法:

            1、focus()

            2、blur()

            3、click() --全选全不选

文本域textarea

       方法:

       1、 focus()

       2、 blur()

       3、 select()

补充知识点:window.clipboardData 剪切板操作 --仅IE支持

        方法:

             1.clearData(format);    --删除剪切板指定格式的内容

             2.getData(format);      --获取剪切板指定格式的内容

             3.setData(format,content); --设置剪切板内容及格式

下拉菜单select

        下拉菜单的muliple属性(多选)双select的应用

        属性

            options    菜单的集合

            length      下拉菜单的长度

            index 菜单的索引

        方法

            add()    --添加

            remove() --移除 sel.remove(sel.index)

            focus()  --获取焦点

            blur()  --失去焦点

            call() 和 apply()的应用

call() 和 apply()的应用

1. call() 的用法

        改变this的指向(上下文的环境) ------函数的方法

        实例一:

         function User(){

                    this.name='大毛';

                    this.showname = function(){

                                    console.log(this.name);

                    }

          }

          function Show(){

                      this.name='二毛';

           }

           var user = new User();

           var show = new Show();

           user.showname();    /// -----返回大毛

           user.showname.call(show);////---返回二毛  this的指向发生改变

        实例二:

        var index = '农妇三拳';

        function Getname(){

                    this.index = '农夫果园';

        }

                    function Demo(){

                    this.index='嘀嘀打人';

                    this.toshow = function(){

                                 console.log(this.index);

                    }

           }

           var d = new Demo();

            d.toshow();              //this 是d对象

            d.toshow.call();            //this 是window对象

            d.toshow.call(new Getname);    //this 是实例化得到的Getname对象

2.call的继承性

        function DD(){

                this.username = '小明',

                this.age = 12,

                this.say = function(){

                             console.log(this.username+','+this.age);

               }

        }

        function FF(){

                DD.call(this);

        }

        var f = new FF();

        f.say();

3. apply()的用法

        与call类似。参数形式不同

        调用一个对象的一个方法,以另一个对象替换当前对象。

        即:改变this的指向    继承性

        1.call(obj,param1,param2,param3.....);

        2.apply(obj,[paran1,param2,param3...]);

        没有参数的情况下

                ----与call一样

        有参数的情况下

               function Getname(name,age){

                          this.name= name;

                          this.age= age;

                          this.toshow = function(){

                                       console.log(this.name+'今年'+this.age);

                         }

                }

                function Toshow(name,age){

                //Getname.apply(this,arguments); //apply的方法继承

                //Getname.call(this,name,age); //call的方法继承

                //Getname.apply(this,name,age); //错误的参数形式

                }

                var show = new Toshow('大毛',21);

                show.toshow();

函数声明的提前与程序的预执行

        (function(){

                function fn1(){ return 100}

                console.log(fn1());

                function fn1(){ return 200}

        })()

        试题:

        demo();

        demo = function(){alert(1)}

        demo();

        function demo(){alert(2)};

对象传参的引用关系

        function demo(arr){

              //arr.push(4);

              arr = [1,2,3,4];

        }

        demo([1,2,3]);

闭包

1.函数的自调用

2.循环中找到对应元素的索引 --一组控制另外一组

3.模块化开发 (面向对象封装)

AJAX

        async Javascript and xml    异步的ajax和xml

什么是异步

        定时器的异步

异步的作用

1、传统的网页(不使用 AJAX)如果需要更新内容,必须重载整个网页页面。

2、通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新。

3、WebApp的开发: 后端程序只提供数据接口, 所有的数据需要ajax请求返回, JS动态生成

概述

1、XMLHttpRequest 对象提供了对 HTTP 协议的完全的访问。

2、XMLHttpRequest 可以同步或异步地返回 Web 服务器的响应,并且能够以文本或者一个 DOM 文档的形式返回内容。 尽管名为 XMLHttpRequest,它并不限于和 XML 文档一起使用:它可以接收任何形式的文本文档。

第一步:获取XML对象

new XMLHttpRequest()                        在所有现代浏览器中(包括 IE 7)

new ActiveXObject("Microsoft.XMLHTTP")  在 Internet Explorer 5 和 6 中

XML对象的常用属性

1、readyState http请求状态

        0  Uninitialized  初始化状态。XMLHttpRequest 对象已创建或已被 abort() 方法重置。

        1  Open        open() 方法已调用,但是 send() 方法未调用。请求还没有被发送。

        2  Send        Send() 方法已调用,HTTP 请求已发送到 Web 服务器。未接收到响应。

        3  Receiving  所有响应头部都已经接收到。响应体开始接收但未完成。

        4  Loaded      HTTP 响应已经完全接收。

2.status 由服务器发过来的响应状态码

        200 响应成功

        304 重定向 缓存

        403 没有权限

        404 请求的文件没有找到

        503 服务器宕机

        504 网关超时

3.statusText 由服务器发过来的响应状态语句

4.responseText 获取 服务端的响应文本

XML对象的常用方法

第二步:初始化请求

        open() 初始化 HTTP 请求参数,例如 URL 和 HTTP 方法,但是并不发送请求。

        open(method, url, async, username, password)

第三步: 发送请求

1、send() 发送 HTTP 请求,使用传递给 open() 方法的参数,以及传递给该方法的可选请求体。

2、setRequestHeader() 向一个打开但未发送的请求设置或添加一个 HTTP 请求。POST

3、getAllResponseHeaders() 把 HTTP 响应头部作为未解析的字符串返回。

4、getResponseHeader() 返回指定的 HTTP 响应头部的值。其参数是要返回的 HTTP 响应头部的名称

XML对象的常用事件

第四步:事件判断 接收请求内容

        onreadystatechange 每次 readyState 属性改变的时候调用的事件句柄函数

GET请求和POST请求

1、get: 将参数拼接到url上

2、post: 将参数拼接到send()中

        --xhr.setRequestHeader("content-type","application/x-www-form-urlencoded");

区别:

1、get从服务器获取数据,post向数据库提交数据。

2、get传输的数据较小,一般不大于2kb,post传输的数据量较大。

3、get安全性较低,post安全性较高,但是get执行效率高。

4、get请求时,服务器使用Request.QueryString获取信息,post请求服务器使用Request.Form

5、操作数据的增删改查时,get用于查询,post用于修改删除添加。

相关文章

网友评论

      本文标题:JS18

      本文链接:https://www.haomeiwen.com/subject/ikvnqxtx.html