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功能也正常了

  • 相关阅读:
    设计模式详解(图码)
    设计模式详解(图)
    Zookeeper学习
    取消单元格的点击事件
    ios 中生成随机数
    IOS 时间和时间戳之间转化
    偏好存空判断
    限制textfield的文字长度
    tabBar的图标不被系统渲染
    (转)IOS http请求的get 和 post的请求的区别
  • 原文地址:https://www.cnblogs.com/webstone/p/3678959.html
Copyright © 2011-2022 走看看