有如下代码:$.ajax({
    cache:true,
    url:'aa.php',
    success:function(/*html*/){
        // 比如是ajax返回的结果
        var html = "<div>" + 
                   "<script src='aa.js'/>" + 
                   "<link href='aa.css' type='text/css' rel='stylesheet'>" + 
                   " some content " + 
                   "</div>";
$("#id").after(html);
    }
}); 
发现 请求为
aa.com/aa.php
aa.com/aa.css
aa.com/aa.js&_=1373600904652这样好像 js 文件不被缓存
看了下 JQuery, 如果插入的html中有script标签,就会用ajax请求js文件
发现这个函数比较可疑function ajaxExtend( target, src ) {
   //......
   if ( deep ) {
jQuery.extend( true, target, deep );
   }
   return target;
}传进去的target 没有 cache属性
返回的时候就被设置了cache:false属性然后就看不懂了请问有没有方法去掉 _=1373600904652 ???
jQueryAjaxCacheJavaScriptHTML

解决方案 »

  1.   

    为什么不提前加载css,js而用ajax
      

  2.   

    $("#id").after(html);
    关键应该在这里,与html是不是AJAX返回的无关。。
    我试试0.0
      

  3.   

    html方法会自动分析script标签然后执行里面的代码和加载src指定的js文件cache是针对url:'aa.php',这个,不是针对html方法中设置的script
      

  4.   

    本帖最后由 showbo 于 2013-07-12 14:09:04 编辑
      

  5.   

    比如CSDN论坛菜单,右边用ajax加载一个小模块,提前加载文件会比较多,
    而且新加入的html就绑定不了事件了