zoukankan      html  css  js  c++  java
  • seajs之seajs-debug坑

    最近遇到两个关于seajs-debug的坑

    一个与preload有关,详情见https://github.com/seajs/seajs-debug/issues/15

    一个与map时间戳有关,详情见https://github.com/seajs/seajs-debug/issues/16

    截止本文章前,官方还未给出彻底解决方案.

    本人经过试验,研究出一个勉强可行的办法

    由于资源问题,没有启用combo服务器,所以本人将seajs-log,seajs-style合并到了sea.js中,追加在sea.js内容的末尾,且看作是一个"硬combo".

    一.preload问题:

    解决方案是:

    暂时避免配置preload,直到官方给出解决方案.

    a.如果你的预加载模块"非预加载不可",那么可以像seajs插件一样,将代码手动合并到seajs中,即追加拷贝代码

    b.如果你的预加载模块只是一个页面公用模块,且不被其他模块依赖(其实这也谈不上预加载模块了囧),那么就把这个模块用seajs.use放在layout页面的底部就行了

    ps:preload数组中的模块,要等第一次调用seajs.use才会被加载.

    二.时间戳与source模块问题:

    上代码,就全部清楚了

    var pageDebug = (seajs.data.preload[0] == 'seajs-debug');//判断是否加载seajs-debug
            seajs.config({
                alias: {
                    "$": "jquery/jquery/1.7.2/jquery",
                    "$-debug": "jquery/jquery/1.7.2/jquery-debug",
                    "seajs-debug": "seajs/seajs-debug/1.1.1/seajs-debug",
                    "placeholders":"gallery/placeholders/3.0.2/placeholders"
                },
                map: [
                    pageDebug?function(){}:[ /^(.*/app.*/.*.(?:css|js))(?:.*)$/i, '$1?t=20140421' ]//时间戳
                ]
            })

    这样,页面URL没有seajs-debug的时候,加载模块的url是带时间戳的,有seajs-debug的时候,source功能也正常了

  • 相关阅读:
    Java中的各种锁总结2
    Java中锁的总结学习
    双亲委派模型
    mybatis中使用in查询问题
    ArrayList、LinkedList、Vector 区别,优缺点,实现原理
    java value注解总结
    linux-系统启动流程
    linux-文本编辑器
    linux-LVM 逻辑卷
    nodejs + access 应用
  • 原文地址:https://www.cnblogs.com/webstone/p/3678959.html
Copyright © 2011-2022 走看看