OneThink后台管理列表的搜索代码优化

在使用OneThink的时候,它后台的原生搜索js代码在IE中会出现内存溢出的问题,也就是说在IE中无法使用搜索功能。

问题的关键出现在这两句代码上,它是用于筛选不为空的项。

query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
query = query.replace(/^&/g,'');

如果要让它在IE上支持,必须要改造一下代码。

原代码

//搜索功能
 $("#search").click(function(){
 var url = $(this).attr('url');
 var query = $('.search-form').find('input').serialize();
 query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g,'');
 query = query.replace(/^&/g,'');
 if( url.indexOf('?')>0 ){
 url += '&' + query;
 }else{
 url += '?' + query;
 }
 window.location.href = url;
 });

改造后的代码

//搜索功能
    $("#search").click(function(){
        var url = $(this).attr('url');
        
        var status = $("#sch-sort-txt").attr("data");
        var query_obj=  $(".search-form input").filter(function(index) {
              return $(this).val() != '';
            });//筛选为空的项        
         
        var query  = query_obj.serialize();
        
        if(status != ''){            
            query = 'status=' + status + "&" + query;  
        }
        if( url.indexOf('?')>0 ){
            url += '&' + query;
        }else{
            url += '?' + query;
        }
        
        window.location.href = url;
    });

原文链接: http://www.devdo.net/onethink-search-optimization.html

posted @ 2015-07-10 15:26  码农小兵  阅读(377)  评论(0)    收藏  举报