• ajax


    ajax

    Ajax是什么,如何创建一个Ajax?

    全称: Asynchronous JavaScript And XML 异步传输 + js + xml 也就是向服务器发送请求时,不必等待结果,而是可以同时做其他事情 等到有结果了它会自己根据设定进行后续操作 于此同时,页面不会整体刷新,提高了用户体验

    创建:

    1.创建一个XMLHttpRequest对象,也就是创建一个异步调用对象2.创建一个新的Http请求,并指定该HTTP请求的方法,url以及验证信息3.设置响应HTTP请求状态变化的函数4.发送HTTP请求5.获取异步调用返回的数据6.使用js和dom实现局部刷新

    Ajax如何解决浏览器缓存问题?

    ajax请求中,只有get请求会有缓存

    解决方案

    1.ajax请求前加上:ajaxObj.setRequestHeader('If-Modified-Since', '0');2.ajax请求前加上:ajaxObj.setRequestHeader('Cache-Control', 'no-cache');3.URL后面加上一个随机数: "random=" + Math.random();4.同理在url后面加上时间戳: "nowtime=" + (new Date()).getTime();5.jq中,可以: $.ajaxSetup({cache: false});

    fetch与ajax

    Ajax的本质是使用XMLHttpRequest对象来请求数据

    fetch 是全局量 window 的一个方法,它的主要特点有:

    第一个参数是URL:

    第二个是可选参数,可以控制不同配置的 init 对象

    使用了 JavaScript Promises 来处理结果/回调:

    fetch()返回的 Promise 将不会拒绝HTTP错误状态, 即使响应是一个 HTTP 404 或 500。 相反,它会正常解决 (其中ok状态设置为false), 并且仅在网络故障时或任何阻止请求完成时,它才会拒绝。

    默认情况下, fetch在服务端不会发送或接收任何 cookies, 如果站点依赖于维护一个用户会话,则导致未经认证的请求(要发送 cookies,必须发送凭据头).

    对于CORS请求,使用include值允许将凭据发送到其他域:

     

    ajax跨域

    如何解决跨域问题?

    ajax跨域一般是用jsonp(old)或者(cors)方案-需要后台进行配合配置

    或者用websocket等请求来进行数据交互

    另外window.postMessage也可跨域跨窗口传递消息(应该属于宏任务级别)

  • 相关阅读:
    工具进阶:如何利用 MAT 找到问题发生的根本原因
    性能优化步骤
    搞定内存泄漏
    jvm配置示例
    vue的transition相同元素通过v-if,以及绑定key的区别
    安装nvm之node版本管理器
    在ts中定义变量类型的dva使用方法
    dva的全部用法
    react父子组件传值之二,ref传值(父组件调用子组件的值和方法) useRef+useImperativeHandle(hook)
    react父子组件传值方式一之props方法
  • 原文地址:https://www.cnblogs.com/luhu/p/16095989.html
Copyright © 2020-2023  润新知