gpt4 book ai didi

javascript - requirejs - 当需要使用服务器生成的值进行初始化时如何构建应用程序

转载 作者:行者123 更新时间:2023-11-29 15:40:29 25 4
gpt4 key购买 nike

如果某些模块需要在页面中动态生成初始化数据,我对构建基于 RequireJS 的项目的最佳方法很感兴趣。

为了澄清,我的问题,我需要在主 html 页面的某处有这样的东西:

/* Following lines generated on server side so need to be in the html page*/
var initDataForModule1= [ data, generated, by, server];
var initDataForModule1= [ some, other, data, generated, by, server];

然后,我会有一些代码需要该数据来完全设置 UI(不一定要加载)。例如,它们需要包含如下内容:

for(var i=0;i<initDataForModule1.length;i++)
generateUIElementWithData(initDataForModule1[i]);

那么,我是否应该将上面的 UI 设置代码放在一个模块中,然后以某种方式加载它并为其提供初始日期?或者哪个是一个好的方法?我在想类似的事情:

<script src="/js/lib/require.js"></script>
<script>
var initDataForModule1= [ data, generated, by, server];
var initDataForModule1= [ some, other, data, generated, by, server];

require(['module1'], function(module1){
module1.initWithData(initDataForModule1);
});

...
<script>

此外,哪个地方适合放置我的 requirejs.config() 部分?

最佳答案

从服务器端呈现 JavaScript 是自找麻烦:混合语言使得重构几乎不可能,因为您最终会在 JS 文件中使用模板标签(这也会在验证/检查期间标记)。它还会耦合您的前端和后端代码,从而降低项目的可移植性。


我决定使用 "text" plugin它在运行时进行 AJAX 调用并读取配置 (您需要记住在 r.js buildconfig 文件中将 inlineText 设置为 false),例如:

require(['main', 'someDep', 'text!../ajax/config'],
function(App, someDep, configString) {
App.start(dep, JSON.parse(configString);
});

其中 "../ajax/config" 是 URL 的路径,该 URL 以 JSON 格式 (*) 提供配置。

(*) 还有 JSON plugin但我无法让它工作,“手动”解析 JSON 文本对我来说并不是什么麻烦。

关于javascript - requirejs - 当需要使用服务器生成的值进行初始化时如何构建应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19931760/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com