首页
学习
活动
专区
圈层
工具
发布

Ajax请求过程中显示“进度”的简单实现

Ajax在Web应用中使用得越来越频繁。...在进行Ajax调用过程中一般都具有这样的做法:显示一个GIF图片动画表明后台正在工作,同时阻止用户操作本页面(比如Ajax请求通过某个按钮触发,用户不能频繁点击该按钮产生多个并发Ajax请求);调用完成后...以下图为例,页面中通过一个Load链接以Ajax请求的方式加载数据(左)。...当用户点击该链接之后,Ajax请求开始,GIF图片显示“Loading“状态,同时当前页面被“罩住”防止用户继续点击Load按钮(中);Ajax请求完成被返回响应的结果,结果被呈现出来的同时,GIF图片和...在调用$.ajax(options)进行Ajax请求之前,我们将GIF图片和遮罩显示出来,并且将其定位在正中央。遮罩的透明度进行了相应设置,所以会出现上图(中)的效果。

2.5K90

Django 中使用 ajax 请求的正确姿势

思路整理 在 django 中使用 ajax 其实就是在前端代码中(一般是 js 中)使用 ajax 调用 django 的接口,然后去更新指定的页面部分。...ajax 的请求过程以及请求前后要做的事件都写到函数中,然后单独放到 js 文件中 ajax 发请求的本质就是调用 django 的接口,所以 django 的 URL 中需要提供接口 django...设置一些默认的参数,简单理解就是在这个里面设置的参数,之后使用 ajax 的时候都会自动添加到请求中,比如可以设置请求头、传入参数等,而我这里是固定设置一个 csrfmiddlewaretoken 参数...小结:我对于使用 ajax 函数的理解思路比较简单,第一步是提取表单或者页面的标签中参数,然后处理和判断参数,当参数合法的时候开始执行请求,请求之前可以设置一下 csrfmiddlewaretoken...在 Django 提供接口给 ajax 的时候最好做到严格按照不同的返回码返回不同的信息 ajax 在请求接口完成之后,可以根据返回码的判断来执行不同的事件 比较耗时的请求可以使用缓存 版权声明:如无特殊说明

2.5K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    几种方法实现ajax请求内容时使用浏览器后退和前进功能

    https://blog.csdn.net/wkyseo/article/details/51699770 ajax是一个非常好玩的小东西,不过用起来也会存在一些问题。...我们可以利用ajax进行无刷新改变文档内容,但是没办法去修改URL,即无法实现浏览器的前进与后退、书签的收藏功能。...利用location的hash部分和使用window.onhashchange来实现 hash就是uri中#及后面的部分,例如:www.google.com.hk#123的#123。...当只有hash部分发生变化时,浏览器的历史记录会产生记录,但不会向服务器发出请求,这时按后退键地址栏的uri会变化但页面内容不变。...而这样的方式对搜索引擎是十分不友好的,twitter和google约定使用hash bang (#!

    1.3K20

    react 在使用数据请求的时候和setState的时候哪个先处理

    今天在工作中遇到一个问题,我司使用的是antd 组件,在使用react数据请求时,并在其中设置setState,页面发现了异常....0].sub[0].selectOnChange = this.getFromUserInfo; this.setState({ myModalItems: myModalItems,...: 如图 然后再去调用调出项目的selectOnChange事件,调出人员的位置变成了罗慧的value值, 如图: 这什么原因,我们这边的前端说法是:两个异步的调用,一个异步请求,一个setState,...当异步请求的时候,setState也是异步更改数据,当数据请求成功时,便遗留了上一个的value值,这样的解释很牵强,欢迎大神来留言....我能提供的解决方案: 当调出项目selectOnChange的时候,调用一个同步的方法,把调出人员的select设为空.在antd中可以直接使用this.props.form.setFieldsValue

    1.4K50

    前端:如何处理AJAX请求的重复使用

    作者|FloatFlower 翻译|小丑 在开发前端时,我们经常使用AJAX来初始化数据并动态渲染在页面上,但是在遇到一连串的相同数据都要进行请求时,就有可能对同一个API 发出并发请求,然而,因为这些请求是同时发出...这样就正确显示了,然而这里有一个问题非常值得注意: ?...我们打开开发者模式就会发现,每个组件向该API发出了请求,因此就产生了10次的并发请求,但是在这种情况下,实际上我们仅需要让一个请求出去,另外9个元件等待这个请求的响应然后重新使用即可。...请求已经被减少到剩下一个了,这是因为所有的元件都重复使用了一个同一个响应。通过这种方法将可以大大减少服务器的负载以及前端的运行时间。...总结 并非每一种情况下都可以使用这种方式来请求资源,如:每次请求资源都一定会发送不一样的API就不能使用这种方式进行API调用,但是像是上述范例中的用户资料,电商网站中的商品资料或文章等,类似能够确保在极短时间之内资源都是相同的

    2K10

    location的hash部分和使用window.onhashchange实现ajax请求内容时使用浏览器后退和前进功能

    当只有hash部分发生变化时,浏览器的历史记录会产生记录,但不会向服务器发出请求,这时按后退键地址栏的uri会变化但页面内容不变。  ...而hash变化但不发出请求就是js跨域双向数据传递的基础啦。  ...下面就讲述一下hash结合ajax的使用,ajax每次取数据时页面更新后浏览器并不产生历史记录,也就是说后退和前进按钮失去应用的效用,这时可以结合hash和window.onhashchange来使用,...类,其中的ajax.Startup()就是发送ajax请求; 2.Object对象保存历史记录,如果对象属性为数字的话,要用obj["1"]的方式来实例化,否者会违反命名规范。...3.在使用window.onhashchange检测hash值获取历史数据。

    1.2K100

    jquery.ajax()怎么把获取来的内容转为JSON,并使用。

    现在越来越多的接口调用返回的数据类型为json数据类型,所以我们在写网页的时候通过AJAX调用数据的话可以通过设置JQ的属性 dataType : "json", 来设置返回数据的格式。...设置了这个属性之后我们就可以按JSON格式使用AJAX返回的内容。...中我们得到的 a 的内容为一个JSON字符串 {"errcode":xxx,"errmsg":"xxxxxxxxxxxxxx"}, 在浏览器的控制器中我们可以看到当触发AJAX时,控制器中返回一个数组。...这样就代表成功了,这时候我就就可以使用 a.errmsg 调用返回信息了。 但在微信小程序里面的wx.request 直接使用 a.data.errmsg这种方式就可以调用内容,不需要转换。...最后在啰嗦几句: 以上代码需要注意的一点是:在写JSON格式数据内容的时候一定要注意格式的准确性,数组的标题一定要用双引号引起来,字符型的数据也一定要用双引号引起来,数值型的可以不用符号引入。

    2.2K20

    不使用回调函数的ajax请求实现(async和await简化回调函数嵌套)

    在常规的服务器端程序设计中, 比如说爬虫程序, 发送http请求的过程会使整个执行过程阻塞,直到http请求响应完成代码才会继续执行, 以php为例子 当代码执行到第二行时,程序便陷入了等待,直到请求完成...以最简单的前端ajax请求为例 代码先输出1,再输出2,整个程序执行流程并未因http请求而被阻塞,回调函数方案完美的把问题解决。 然而,这只是最简单回调函数示例,假如回调函数嵌套了许多层呢?...先把上面用JavaScript实现的多层嵌套回调用同步的方式来改写, 代码如下 代码由ajax和run这两个函数组成, ajax是对jquery ajax的封装,使之能不使用回调函数就能获得ajax的响应结果...Promise构造函数的参数是一个函数,resolve和reject分别是这个函数的两个参数,同时这两个参数自身也是函数类型,这两个参数有着重要的意义,在这里它们的作用就是将ajax的响应内容给返回出去...因为没辙啊, 试想一下,ajax的回调函数中使用return语句, 意义何在?因此也只能变向的通过Promise将返回值扔给外部的调用者。

    3.7K50

    【React学习笔记】React生命周期梳理(16.X前后两种)

    没必要进行ajax请求「不能调用setState,否则会死循环。因为setState会触发shouldComponentUpdate,触发后如果返回true,又会走到render里。...没必要做ajax请求,即使做了也不能重新setState基本上没什么用 render 组间更新完毕,执行render函数重新渲染页面。 (同上边的render。)...没必要做ajax请求,即使做了也不能重新setState基本上没什么用 【往复】:回到组件运行状态(等待) props改变,重新render props属性是从父组件传过来的。...ajax请求:同上「但是官方不建议这么做,认为是不合理的。...没必要进行ajax请求「不能调用setState,否则会死循环。因为setState会触发shouldComponentUpdate,触发后如果返回true,又会走到render里。

    3.1K30

    React学习(九)-React中发送Ajax请求以及Mock数据

    不生效的 对应的UI效果显示:如下所示 ?...当然对于UI以什么样的方式来显示,你自己可以用css进行控制的,这并不是文本的重点 在哪个生命周期函数中发送AJax请求 把Ajax请求放在componentWillMount组件即将被挂载的函数中也是可以的...但是官方推荐放在componentDidMount这个生命周期函数中发起Ajax请求,因为执行这个生命周期时,DOM已经挂载完了 这样做可以拿到Ajax请求返回的数据并通过setState来更新组件...在React中,你可以使用你喜欢的Ajax库,例如:Axios,浏览器内置的feach方法,JQuery Ajax,或是第三方库request,下面就逐一来看看的 方式一使用Axios发送Ajax请求...request-promise的方式实现Ajax数据的请求也是可以的,注意使用该方式时,无法使用本地mock数据的 它也是支持promise对象,注意,当返回成功的response的类型是一个json字符串格式

    5.2K31

    React基础(9)-React中发送Ajax请求以及Mock数据

    不生效的 对应的UI效果显示:如下所示 image.png 当然对于UI以什么样的方式来显示,你自己可以用css进行控制的,这并不是文本的重点 在哪个生命周期函数中发送AJax请求 把Ajax请求放在...Ajax请求返回的数据并通过setState来更新组件 componentDidMount(){    // 在这里进行Ajax数据请求,axios,fetch,jquery Ajax或者request...在React中,你可以使用你喜欢的Ajax库,例如:Axios,浏览器内置的feach方法,JQuery Ajax,或是第三方库request,下面就逐一来看看的 方式一使用Axios发送Ajax请求...})   } 上面是使用jquery中提供的方法Ajax请求数据,我们只需要请求一数据,但却要把整个jquery库都给引入进来,这个按照当今的按需加载模块化开发的话,是非常不合理的,于是就有了fetch...request-promise的方式实现Ajax数据的请求也是可以的,注意使用该方式时,无法使用本地mock数据的 它也是支持promise对象,注意,当返回成功的response的类型是一个json字符串格式

    2.8K30

    前端面试指南之React篇(二)

    使用 React.memo 高阶函数包装组件。使用 shouldComponentUpdate 生命周期函数来自定义渲染逻辑。方法组件中的优化手段使用 useMemo。使用 useCallBack。...componentDidMount:在第一次渲染之后执行,可以在这里做AJAX请求,DOM 的操作或状态更新以及设置事件监听器。...两者通过React-Redux 提供connect方法联系起来在生命周期中的哪一步你应该发起 AJAX 请求我们应当将AJAX 请求放到 componentDidMount 函数中执行,主要原因有下React...如果我们将AJAX 请求放置在生命周期的其他函数中,我们并不能保证请求仅在组件挂载完毕后才会要求响应。...使用效果: useEffect是按照顺序执行代码的,改变屏幕像素之后执行(先渲染,后改变DOM),当改变屏幕内容时可能会产生闪烁;useLayoutEffect是改变屏幕像素之前就执行了(会推迟页面显示的事件

    3.6K120

    React面试题精选

    主要的原因就是受控组件有助于进行表单验证,控制按钮是否可点击,强制输入格式,并且它也更符合“React way” ---- 在生命周期的哪个阶段发生ajax请求而且为什么?...AJAX请求应该在 componentDidMount函数 进行。 有以下几个原因: Fiber-React下一代的调和算法,会根据渲染性能来开始或者结束渲染。...权衡componentWillMount 函数在一次生命周期中可能被调用多次,将Ajax请求放在这个函数里就具有了不确定性。这对Ajax请求来说是个不是个好的选择。...若考虑其它函数,你不能保证AJAX请求在component在被挂载之前被不会进行响应。...如果在componentDidMount函数进行AJAX请求则能有效避免这个问题。 ---- shouldComponentUpdate 的作用以及它的重要性?

    3.2K42

    ASP.NET AJAX(15)__构建高性能ASP.NET AJAX应用UpdatePanel的性能问题使用UpdatePanel的注意事项脚本加载避免脚本阻塞页面显示AjaxControlTool

    UpdatePanel的性能问题 在UpdatePanle使用的时候,它每次的更新都是将整个页面回送的,而且也会加上一些他更新的标记,所以往往它传递的数据量比传统的PostBack都要多,这其实是违背AJAX...减少数据量传输的特点的 使用UpdatePanel的注意事项 在使用UpdatePanel的时候,要只传输必要的内容,使用相对小而细的UpdatePanel,而不是使用大而全的UpdatePanel,在每次...当浏览器遇到这个标记的时候,将会停止下载资源和显示内容 为了提高性能,将不会立即使用的脚本放置在页面代码末尾 将LoadScriptsBeforeUI设置为false(设置时候,注意代码时候会在加载的时候...,是否会被用户调用) AjaxControlToolkit性能提高 AjaxControlToolkit的控件会引入大量的脚本 在产品环境中一定要使用Release模式的脚本,可以在它的压缩包中找到,或者使用将源代码里的脚本使用内置的...其他 几乎所有能够提高Web应用程序性能的做法都可以提高AJAX应用程序性能 合理利用缓存 优化数据库 合并小图片以较少round-trip Keep-Alive 压缩 并行加载资源 ……

    1.3K100
    领券