加载主索引页时我是否必须包含所有javascript文件?
在我们未登录的单页面应用程序中,我们在主索引文件中包含了所有.js文件。这包含仅在用户登录时才需要的js文件。
在这种情况下管理角度应用程序的更好方法是什么?
答案 0 :(得分:0)
简单回答:是的。
您的应用程序是单页应用程序,因此您可以将所有JS文件合并为一个并在一个请求中加载它。它节省了将来处理的时间。
或者,创建两个页面from itertools import groupby
def summarize_inventory(inventory):
# We use -price so that we are also sorting by descending price
sort_key = lambda (code, (cat, price, sold)): (cat, -price)
group_key = lambda (code, (cat, price, sold)): cat
new_dict = {}
sorted_inventory = sorted(inventory.iteritems(), key=sort_key)
for cat, group in groupby(sorted_inventory, key=group_key):
group = list(group)
if len(group) > 1:
for (code, item) in group[:2]:
new_dict[code] = item
return new_dict
和>>> summarize_inventory(inventory)
{'B': ['Toy', 8, 1100],
'C': ['Cloth', 15, 1200],
'E': ['Toy', 11, 1400],
'F': ['Cloth', 18, 1500]}
,然后相应地加载两组不同的JS文件。
通常情况下,现在带宽不是瓶颈,加载更大的JS文件并不会造成麻烦(通常)。
答案 1 :(得分:0)
您可以将代码拆分为多个模块,然后只加载该模块所需的js。
我建议在适当的时候使用Gulp和包注入HTML。然后,您可以使用单行代码作为Javascript的占位符,并运行Gulp任务以将Javascript注入需要它的区域。
你也可以运行gulp任务来将你的js缩小为几个缩小的文件。您需要确保您的js在最小安全(gulp也可以这样做)。
答案 2 :(得分:0)
如果您制作AMD - 最常使用RequireJS - 那么您不需要从一开始就包含所有内容。
不久前我们做了一个类似的项目,虽然没有AngularJS,并且通过使用RequireJS我们制作了不同的页面,它们使用不同的文件。这样,人们的浏览器永远不会下载某些文件,如果他们从未进入某些页面。
(当然,我们在应用程序内部有很多页面,而不仅仅是2或3,这不会有任何区别。)