【问题标题】:how to use modernizr to load ractive legacy如何使用 modernizr 加载 ractive legacy
【发布时间】:2015-01-05 14:06:06
【问题描述】:

我需要处理一个需要遗留支持的项目。 我将如何将它与 modernizr 集成以仅在必要时加载遗留? 这可能吗?

【问题讨论】:

    标签: modernizr legacy ractivejs


    【解决方案1】:

    旧版构建包含一些 IE8 中没有的 polyfill - Ractive 在首次加载时会进行自己的检查,如果检测到缺少功能(并且它是非旧版构建),则会引发错误。检测代码是here - 所以您可以将其复制到您的应用中:

    function useRactiveLegacy () {
      return (
        typeof Date.now !== FUNCTION                 ||
        typeof String.prototype.trim !== FUNCTION    ||
        typeof Object.keys !== FUNCTION              ||
        typeof Array.prototype.indexOf !== FUNCTION  ||
        typeof Array.prototype.forEach !== FUNCTION  ||
        typeof Array.prototype.map !== FUNCTION      ||
        typeof Array.prototype.filter !== FUNCTION   ||
        ( typeof window !== 'undefined' && typeof window.addEventListener !== FUNCTION )
      );
    }
    
    // using Modernizr
    Modernizr.load({
      test: !useRactiveLegacy(),
      yep:  'ractive.js',
      nope: 'ractive-legacy.js
    });
    
    // using AMD
    require([ useRactiveLegacy() ? 'ractive-legacy' : 'ractive' ], function ( Ractive ) {
      /* code goes here */
    });
    

    请记住,这些检查可能会随着 Ractive 的未来版本而改变 - 例如,我们可能会决定将 Promises 降级为旧版本,而不是自动填充它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多