MeteorJS:有选择地加载每个模板的 javascript
MeteorJS: Selectively load javascript of each template
我注意到 meteor 正在创建和加载每个模板 javascript 文件。是否可以选择性地加载每个模板的javascript?因为我的应用程序为我的每个用户生成了模板文件。因此,如果是这种情况,每个用户的模板 javascript 都会加载到页面中。那可不太理想。
index.html
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_cart.jade.js?4e6fe10676dcbfd5eec51f802ab604bf7afefdfc"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_footer.jade.js?c904832f29a144cc6a3c53b8fc4159088d427ce9"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_header.jade.js?02a4f5e9a4a697194e32a16bee9209fa9a63422a"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_home.jade.js?91d90f326d7da8db94396648b81f88c739691754"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_product.jade.js?3eed90e15d544fb8e4d5418c641a51ce94c048b2"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_search.jade.js?08b0b0b4e02599e9ceaac00b94515a1ee7638036"></script>
这还不可能,但在路线图上:Incremental loading。根据那张卡片:
Right now, on initial pageload, you download all of the JavaScript, templates, and css in the app.
如果您要在文件系统中为每个使用您的应用的用户生成一个唯一的文件,您可能需要重新考虑如何构建您的应用。您真的需要为每个用户创建一个新模板,还是可以使用一个模板完成它并根据当前 displayed/logged 中的哪个用户进行更新?
简短的回答是,你不应该。
This answer 解释了一种优雅的选择性加载方法,还解释了您不应该这样做的原因。
请考虑以下事实:初始页面加载后(对于中等大小的应用程序可能为 2MB - 5MB),浏览器会缓存所有内容,并且通过网络传输的所有内容都是纯数据。
我注意到 meteor 正在创建和加载每个模板 javascript 文件。是否可以选择性地加载每个模板的javascript?因为我的应用程序为我的每个用户生成了模板文件。因此,如果是这种情况,每个用户的模板 javascript 都会加载到页面中。那可不太理想。
index.html
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_cart.jade.js?4e6fe10676dcbfd5eec51f802ab604bf7afefdfc"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_footer.jade.js?c904832f29a144cc6a3c53b8fc4159088d427ce9"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_header.jade.js?02a4f5e9a4a697194e32a16bee9209fa9a63422a"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_home.jade.js?91d90f326d7da8db94396648b81f88c739691754"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_product.jade.js?3eed90e15d544fb8e4d5418c641a51ce94c048b2"></script>
<script type="text/javascript" src="/client/views/themes/jnr8tWHJ6JTARPpYa/plate_jnr8tWHJ6JTARPpYa_search.jade.js?08b0b0b4e02599e9ceaac00b94515a1ee7638036"></script>
这还不可能,但在路线图上:Incremental loading。根据那张卡片:
Right now, on initial pageload, you download all of the JavaScript, templates, and css in the app.
如果您要在文件系统中为每个使用您的应用的用户生成一个唯一的文件,您可能需要重新考虑如何构建您的应用。您真的需要为每个用户创建一个新模板,还是可以使用一个模板完成它并根据当前 displayed/logged 中的哪个用户进行更新?
简短的回答是,你不应该。
This answer 解释了一种优雅的选择性加载方法,还解释了您不应该这样做的原因。
请考虑以下事实:初始页面加载后(对于中等大小的应用程序可能为 2MB - 5MB),浏览器会缓存所有内容,并且通过网络传输的所有内容都是纯数据。