我正在使用 RequireJS 加载应用程序中的模块。我需要将在index.php 获得的URL 参数传递给主模块。我可以看到有几种方法可以做到这一点,但我更希望索引中唯一的东西本质上仍然是这样的:
<script type="text/javascript" data-main="scripts/main" src ="scripts/require-jquery.js"></script>
因为RequireJS说这样更有利于优化。我当前的解决方法是将原始 require 调用放入索引文件中,并使用那里的 URL 参数。有更好的办法吗?
作为引用,我在服务器端使用 PHP,如果这有帮助的话。
最佳答案
要将参数从 GET 传递到脚本,您有以下三个选项:
使用$_SESSION存储值并动态编辑主js文件。 这将导致巨大的开销并增加许多不必要的共谋(更多共谋=>更多错误)
添加此代码 http://www.onlineaspect.com/2009/06/10/reading-get-variables-with-javascript/ 到您的主模块以通过 javscript 检索参数。
使用 PHP 生成一个小型 Java 脚本(使用 $_GET)来设置值。 从理论上讲,这比其他选项更快。
选项 2 和 3 之间的速度不应有显着差异,因此只需选择符合您需求的选项即可。
如果主模块是经常更新的第三方组件,我会选择第三个选项,因为这样您就不必每次拉取新版本时都更改主模块。
如果您想设置基于用户的默认值,您应该坚持使用选项 3,以便更轻松地访问数据库和用户设置。
我希望这会有所帮助。
编辑: 如果您的主模块在加载所有脚本之前不需要该参数,您可以在额外的模块中使用选项 2 中的脚本来设置主模块中的值。这也可以解决更新问题。
关于php - 如何访问 require.js 异步加载的 Javascript 中的 URL 参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8363646/