RequireJS条件依赖项

kar*_*llm 9 conditional modernizr requirejs

我正在尝试定义具有条件依赖性的模块(取决于Modernizr测试).我已经做了一些有效的事情,但对我来说感到很难过.

你能告诉我你的想法以及是否有更好的方法吗?谢谢.

var dependencies = ["jquery"];

require(["modernizr"], function() {
  if(Modernizr.canvas) dependencies.push("modernizr/excanvas");
});

define(dependencies, function($) {

  $(function() {
    // code here
  });

});
Run Code Online (Sandbox Code Playgroud)

PJU*_*JUK 3

当浏览器不支持某些内容时,您是否尝试加载该文件,加载更多 javascript 以使其成为工作类型场景?

或者我可以看到您尝试根据该方法是否可用使用不同的方法来实现相同的功能,并且希望根据该条件加载附加或替代的 javascript。

不过,请耐心等待,我正在做出假设,我还没有完全尝试过,但这个理论也许是有道理的:)

也许类似于

define("jquery","modernizr", function($) {
  $(function() {
    var functionMain = function() {
      // code here
    }

    var functionA = require(["modernizr/excanvas"], function() {
      functionMain()
    });    
    //require here not strictly necessary
    var functionB = require([""], function() {
      functionMain() 
    });    


    if(Modernizr.canvas)
      functionA();
    else
      functionB()
  }); 
});
Run Code Online (Sandbox Code Playgroud)

我不知道,也许只是风格或偏好的问题,这只是做同样事情的另一种方式,但没有我只是不喜欢的依赖数组(笑),尽管实际上,如果它可能没有任何问题您要做的就是有条件地加载该文件,其余代码是相同的

我更多地考虑根据条件拆分实现,然后每个实现有不同的条件要求,但这仍然是所有意见,嗯?:)