ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Javascript对象依赖项

2019-06-27 03:20:04  阅读:201  来源: 互联网

标签:javascript file dependencies mootools


在复杂的客户端项目中,Javascript文件的数量可能会非常大.但是,出于性能原因,最好连接这些文件,并压缩生成的文件以通过网络发送.我在连接这些时遇到问题,因为在某些情况下需要它们之后包含依赖项.

例如,有2个文件:

/modules/Module.js <requires Core.js>
/modules/core/Core.js

递归遍历目录,并在Core.js之前包含Module.js,这会导致错误.这只是一个简单的示例,其中依赖项可以跨目录,并且可能存在其他复杂情况.但是没有循环依赖.

我遵循的Javascript结构类似于Java包,其中每个文件定义一个Object(我使用MooTools,但这是无关紧要的).每个javascript文件的结构和依赖关系始终是一致的:

Module.js

var Module = new Class({
    Implements: Core,

    ...
});

Core.js

var Core = new Class({
    ...
});

您通常遵循哪些做法来处理Javascript文件数量巨大的项目中的依赖项,并且存在文件间依赖性?

解决方法:

使用目录很聪明,但是,我认为当您有多个依赖项时可能会遇到问题.我发现我必须创建自己的解决方案来处理这个问题.所以,我创建了一个值得一试的依赖管理工具. (Pyramid Dependency Manager documentation)

它做了一些其他javascript依赖管理器不做的重要事情,主要是

>处理其他文件(包括为视图插入html …是的,您可以在开发期间分隔您的视图)
>准备好发布时,在javascript中为您组合文件(无需安装外部工具)
>具有所有html页面的通用包含.您只需在添加,删除,重命名依赖项等时更新一个文件

一些示例代码,以显示它在开发过程中的工作原理

文件:dependencyLoader.js

//Set up file dependencies
Pyramid.newDependency({
    name: 'standard',
    files: [
    'standardResources/jquery.1.6.1.min.js'
    ]
});

Pyramid.newDependency({
name:'lookAndFeel',
files: [
    'styles.css',
    'customStyles.css'
    ]
});

Pyramid.newDependency({
name:'main',
files: [
    'createNamespace.js',
    'views/buttonView.view', //contains just html code for a jquery.tmpl template
    'models/person.js',
    'init.js'
    ],
    dependencies: ['standard','lookAndFeel']
});

Html文件

<head>
    <script src="standardResources/pyramid-1.0.1.js"></script>
    <script src="dependencyLoader.js"></script>
    <script type="text/javascript">
        Pyramid.load('main');
    </script>
</head>

标签:javascript,file,dependencies,mootools
来源: https://codeday.me/bug/20190627/1300563.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有