zoukankan      html  css  js  c++  java
  • ajax 会遇到的问题总结

    1,瀑布流的bug
    • 多次滚动,请求多次,
             解决:加一个开关变量,当数据返回之后才会执行下一次ajax请求,并设置超时时间
    • 中途数据库有变更,造成数据库id变化,(本来的20变成21)请求就会返回一个重复数据
            解决:每次请求把数据的不变的那个id传给后台,后台根据这个不变的id 取数据
    •  当数据量超级大的时候,浏览器会崩溃
              可以把之前请求到的数据从浏览器清空。
           
    2,ajax轮询
     每隔五秒发一次请求到服务器,本来一切正常,但是遇到网络不好的情况,连发几次请求,会被卡主,一股脑返回几次重复数据
    暂时的解决方案1
    判断如果数据一样就不执行相应的操作
    或者设置ajax超时
     用jq的jQuery.ajaxPrefilter()ajax预处理方法
    • options 是请求的选项
    • originalOptions 值作为提供给Ajax方法未经修改的选项,因此,没有ajaxSettings设置中的默认值
    • jqXHR 是请求的jqXHR对象
    当自定义选项,需要提前处理,预过滤器(Prefilters)是一个完美的选择。给定下面的代码, 例如,如果自定义abortOnRetry选项被设置为true,那么调用$.ajax()会自动中止请求相同的URL:
     
    
    
    var currentRequests = {};
    $.ajaxPrefilter(function( options, originalOptions, jqXHR ) {
    if ( options.abortOnRetry ) {
    if ( currentRequests[ options.url ] ) {
    currentRequests[ options.url ].abort();
    }
    currentRequests[ options.url ] = jqXHR;
    }
    });
     
    currentRequests.abort();方法取消的时候,实际上会触发$.ajax success事件,所以在success是的回调函数需要添加判断current_request是否存在,存在才执行回调函数
     
    应该还有其他的方案以后再增加  
  • 相关阅读:
    巨人的崛起 Android操作系统发展历程
    iPhone 4S定位功能加强 支持GLONASS系统
    android子线程更新UI,与主Thread一起工作
    什么在阻碍移动互联网的普及?
    WEB.CONFIG 配置详解
    解决在aspx页面上进行传中文参数时会出现乱码问题
    VS2005水晶报表注册码
    windows2003应用程序池假死的问题
    浅谈ASP.NET内部机制
    合理建立数据库索引
  • 原文地址:https://www.cnblogs.com/yangjingjing/p/5232412.html
Copyright © 2011-2022 走看看