zoukankan      html  css  js  c++  java
  • 关于Ajax知识点小节

    URL:统一资源定位符

    网络的七层协议:网卡 驱动  网络层(ip)  传输层(tcp udp) 会话层( )  应用层(http、)
    restful表征状态转移(一种表征架构)
    CURD 增删改查   
    post改  get查  put增  delete删
     
    head没有响应主体
    get系:get  head delete 没有请求主体
     
    get系和post系区别
    get系没有请求主体
    get系会被缓存
    get系有大小限制,最大不能超过8k,但是一般情况超过4k就用post了(因为get没有主体,数据都是拼接到url后面,因为浏览器对url有大小限制) post都放在了请求主体里所以没有大小限制
    发送的数据,get系是明文发送,post系会把data放到请求主体里,无法看见
     
    socket  管即时通讯的
    通过http建立连接   http  connection  响应码 101
    通过tcp进行交互
     
     
    delete  put 返回码是202
    http status code 状态码
     
     200 成功 服务器端和客户端都成功
     202 接受
     
    301  永久转移   
    302  临时转移  临时重定向
    负载均衡  集群  多台服务器间的跳转
    303永久重定向 、307 临时重定向
    304  走服务器缓存  not modified
     
    响应首部
         last-modified 最后一次修改的时间  gmt标准时      浏览器先找last-modified,不存在就会找etag
        atag 文件修改一次 时间就变一次  通过sha1算法 散列值   
     
    请求头部
    if-modified-since   GMT时间
    if-none-match   一串通过检验内容进行sha(1|2)算法的字符串
     
     
    cache-control   second 缓存的是秒数
    expires  gmt data 缓存到什么时候  
     
     
    400 参数错误 bad request
    401 未认证 not authoriticated
    403 禁止访问  没有权限  forbidden
    404  未找到  not found
    417 资源过大  
     
    500 服务器内部错误  internal server error
    502 
    503 并发太高 (同时处理的太多) 
     
     
    MIME type   告诉浏览器以什么格式处理数据  格式 xxx/xxx
    text/html
    text/css
    text/javaScript
    img/png
    img/jpg
    img/gif
    application/json
    application/octet-stream
     
     
    url格式
    http  端口80
    https  端口443
    ftp  文件传输协议
    smtp  传输邮件的
    telnet
     
                            账号 密码              域名(主机名)  端口         路径
    scheme://username:password    @hostname:     port/     path?querystring#hash
     
    http  https   ftp  协议
     
     
    文件上传的mime-type是multi-part/form-data
    传二进制用 application/octet-stream
     
    ArrayBuffer  透明的
    Blob  不透明的
     
     
    1.1和2.0的主要区别?
    (1)多路复用
    (2)首部压缩
    (3)服务器推送
     
     
    console.time('a');
    for(var i=0;i<1000;i++){};
    console.timeEnd('a');
    console.tab([{name:'asde',age:12},{name:'asde',age:12},{name:'asde',age:12}])
    console.dir();输出某个对象的详情
     
     
     
     
     
     
     使用jQuery
            $.ajax({
                url: "test.txt",
                type: "get",
                dataType: "json",//text
                async: true,
                success: function (data) {
                    //data就是我们请求的结果
                    console.log(data);
                },
                error: function () {
        
                }
            });
     
            $.ajax({
                url: "test.txt",
                type: "post",
                data: {
                    name: "12"
                },
                dataType: "json",
                success: function (data) {
                    //data就是我们请求的结果
                    console.log(data);
                }
            });
     
        使用原生的JS
              var createXHR = (function () {
                if ("XMLHttpRequest" in window) {
                    return function () {
                        return new XMLHttpRequest();
                    }
                }
                if (new ActiveXObject("Microsoft.XMLHTTP")) {
                    return function () {
                        return new ActiveXObject("Microsoft.XMLHTTP");
                    }
                }
                if (new ActiveXObject("Msxml2.XMLHTTP")) {
                    return function () {
                        return new ActiveXObject("Msxml2.XMLHTTP");
                    }
                }
                if (new ActiveXObject("Msxml3.XMLHTTP")) {
                    return function () {
                        return new ActiveXObject("Msxml3.XMLHTTP");
                    }
                }
            })();
            var xhr = createXHR();
            xhr.open("get", "test.txt");
            xhr.onreadystatechange = function () {
                if (this.readyState === 4 && /^2d{2}$/.test(this.status)) {
                    var value = this.responseText;
                    console.log(value);
                }
            };
            xhr.send();//"post请求中如果需要传递给后台数据,我们需要把JSON格式的字符串放到里"
     
        非同源策略
            function aaaaa(data) {
                console.log(data);
            }
        前端:利用<script>不存在跨域的概念(我可以在自己的网页中引入任何域名下的JS文件),我们通过<script>的src属性,向后台发送一个请求,并且把一个函数的名字(aaaaa)传递给后台(一般来说都是?callback=aaaaa)
        后台:后台会把传递进来的参数进行解析,获取到你的方法名aaaaa,并且执行这个方法,把所有需要给你的数据传递给aaaaa
        我们aaaaa中定义的形参data中其实就已经存储了我们需要的数据,接下来在做数据解析、数据绑定即可
    </script>
    <!--<script type="text/javascript"-->
    <script type="text/javascript">
            $.ajax({
                type: "get",
                dataType: "jsonp",
                jsonpCallback: "a",
                success: function (data) {
                    console.log(data);
                }
            });
     
        $.ajax({
            type: "get",
            dataType: "jsonp",
            jsonp: "cb",//->修改callback这个属性名为cb
            jsonpCallback: "aa",//->修改cb传递值的名字为aa
            success: function (data) {
                console.log(data);
            }
        });
     
     
     
     
     
     
     个人整理,转载请标明出处
     
     
     
  • 相关阅读:
    JSP中 == 和equals的区别
    使用Cookie保存用户名密码,再次登陆时将Cookie用户名密码取出来并直接放置到用户名密码文本框中
    学习Java Web开发中遇到的问题,及其解决方法
    部署、测试、服务工作的经验记录
    Python基础--dict字典操作
    Python基础--dict字典
    Python基础--预留空 5
    Python基础--预留空 4
    Python基础--tuple 元组
    Python基础--预留3
  • 原文地址:https://www.cnblogs.com/js-wxf/p/5670454.html
Copyright © 2011-2022 走看看