问一个关于ajax异步请求的问题

geek_zhang 2017-11-27 03:59:37
使用ajax异步请求时,如果后台数据库查询速度慢,会造成ajax请求成功的函数不执行,改成同步请求会解决这个问题,但是又达不到异步请求的效果,有什么解决方案?
...全文
244 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
前端-珊珊 2017-11-28
  • 打赏
  • 举报
回复
控制台报304啊?那你看看这个http://blog.csdn.net/u011724770/article/details/54948748
澪月 2017-11-27
  • 打赏
  • 举报
回复
如果是必要加载的数据,那就必须async:false了。 加载时间长,就用loading标识提示用户,让用户感觉到页面是在加载,加载的慢是网慢。千万不要卡死在那里不动了。 sql在数据库上直接跑一下,对比一下事件。优化一下sql
geek_zhang 2017-11-27
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
自己控制台看ajax返回的信息是什么,还厚http状态吗
控制台显示304错误
geek_zhang 2017-11-27
  • 打赏
  • 举报
回复
我的数据库是远程服务器上的
  • 打赏
  • 举报
回复
自己控制台看ajax返回的信息是什么,还厚http状态吗
geek_zhang 2017-11-27
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
不是说了,去掉timeout啊。。你自己都设置了3s了,超过3s的请求就会abort掉ajax请求触发error请求了。。。 同步请求timeout无效,所以不会自动终止ajax请求
我之前是没有加timeout的,我以为你让我加个timeout。 我去掉timeout一样执行error
  • 打赏
  • 举报
回复
不是说了,去掉timeout啊。。你自己都设置了3s了,超过3s的请求就会abort掉ajax请求触发error请求了。。。

同步请求timeout无效,所以不会自动终止ajax请求
geek_zhang 2017-11-27
  • 打赏
  • 举报
回复


改成同步请求,就可以 alert(data)
geek_zhang 2017-11-27
  • 打赏
  • 举报
回复

看我的例子,点击登录直接弹出error,都没等3秒
clark_kidd 2017-11-27
  • 打赏
  • 举报
回复
1异步的同时显示loading条,对不需要显示预估完成时间的情况采取的方式,但是体验上说,用户只知道在读,但不知道要多久 2委托给线程,由线程汇报进度,前台js读取进度并显示,可以较精确的显示完成度,并能大概预估出完成时间,适合大批量逻辑处理使用,不适合单条sql占用大量时间的情况 3优化sql,请转sql区
  • 打赏
  • 举报
回复
你没设置timeout之类的吧,自动abort掉ajax响应了

Web开发学习资料推荐
配置chrome支持本地(file协议)ajax请求
ajax对象属性withCredentials

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧