首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图形-将依赖关系建模为并行/串行化

图形-将依赖关系建模为并行/串行化
EN

Stack Overflow用户
提问于 2013-03-30 22:55:22
回答 2查看 158关注 0票数 1

如何使用一组依赖项并将其建模为串行和并行操作?

例如:

U1依赖于U2

的串行表示形式。

代码语言:javascript
复制
S: [U1, U2]

U1和U2不依赖于并行表示。

代码语言:javascript
复制
P: [U1, U2]

S表示序列,P表示并行。在本例中,U引用指向资源的URL。

在并行资源中,排序并不重要。在串行资源中,排序确实很重要。

我正在尝试构建一个资源加载器。

它只需要与本地服务器一起工作。另外,它只使用Ajax请求来加载资源。

但是我想要一种语言/语法来建模依赖资源的复杂性。

澄清与实例

这是为了学习/以后的实施。没有外部库,除非您可以将它们用于加载的语法与问题关联起来。

示例1

Jqueryui依赖jquery。这将被表示为..。

代码语言:javascript
复制
S: [U-jquery, U-jqueryui]

示例2

jquery.js不依赖于underscore.js。这将被表示为..。

代码语言:javascript
复制
P: [U-jquery, U-underscore]

示例3

backbone.js依赖于underscore.js和jquery.js

代码语言:javascript
复制
P:[U-underscore, U-jquery] // group1
S:[some_notation to represent group1, U-backbone.js]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-03 12:53:45

没有外部库,除非您可以将它们用于加载的语法与问题关联起来。

您可能想看看require.js以及它如何指定它的依赖项。MediaWiki的ResourceLoader也很有趣,尽管JS依赖映射是由PHP脚本动态生成的,但它的结构可能是相关的。

Jqueryui依赖jquery。这将被表示为..。 S: U-jquery,U-jqueryui

可能,为什么不呢。但是,我不确定您是否想为依赖关系管理创建自己的DSL;如果您想坚持使用标准的JSON /对象文本,我建议将对象的键用于您声明依赖项的模块,然后将其作为值列出:

代码语言:javascript
复制
deps = {
    "U-jqueryui": /*depends on*/ ["U-jquery" /*and nothing else*/]
};

jquery.js不依赖于underscore.js。这将被表示为..。 P: U-jquery,U-下划线

我不明白。为什么需要显式声明呢?任何不相关的东西(在某种程度上不显着地相互依赖)都应该默认为无序加载/执行。否则,您将有一个指数数量的P-声明的独立模块;如果您错过一个应该发生什么呢?

backbone.js依赖于underscore.js和jquery.js P:U-下划线,U // group1 S:some_notation表示group1,U-backbone.js

我只需使用与示例1中相同的形式:

代码语言:javascript
复制
deps = {
    "U-backbone.js": /*depends on*/ ["U-underscore", /*and*/ "U-jquery"]
};

如果您确实需要组,您可以创建它们,就像一个没有主体的模块,它只是加载它的所有依赖项并提供它们。然后,在加载程序代码中为它们设置一些异常(基于名称,而不是以U-开头?)这样他们就不会触发实际的ajax请求。最后的依赖项对象将类似于

代码语言:javascript
复制
deps = {
    "U-jqueryui": ["U-jquery"],
    "group1": ["U-underscore", "U-jquery"],
    "U-backbone.js": ["group1"]
};
票数 1
EN

Stack Overflow用户

发布于 2013-03-30 23:09:01

检查Modernizr.load

现在您很可能对脚本的下载速度不太满意,但是您会很高兴知道Modernizr.load不会减慢任何事情,有时可以通过异步和并行地加载脚本来提高性能。在这方面有很多变量需要权衡,所以我们建议您尝试一些方法,以确保您在特定情况下获得最大的性能。

http://modernizr.com/docs/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15724403

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档