gpt4 book ai didi

jquery - 如何在 Node Express Web 服务器中使用 requirejs、jquery 和 d3

转载 作者:太空宇宙 更新时间:2023-11-03 22:38:55 24 4
gpt4 key购买 nike

我已经为此苦苦挣扎了一段时间,但没有取得任何进展。我总是会遇到意想不到的事情。

我想支持 node.js (express) 中的浏览器代码,该代码使用 require.js、jquery 和 d3.js 基于 http 请求输入参数构建图形 (svg)

我遇到的问题是,一旦 requirejs 初始化,它将始终返回相同的 jquery 和 d3.v2 模块,并且这些模块(对于每个客户端 http 请求)都将开始在同一个 DOM (jsdom) 上执行操作实例。最终结果是图表混合在一起。

一旦 require.js 不再出现,这很容易,但这需要我更新所有大量使用 require.js 模块和依赖管理的现有浏览器代码

关于如何解决此问题的所有提示,或演示此设置的代码的指针将受到热烈欢迎!

谢谢

彼得

最佳答案

最终对我有用的技巧是明确区分设置“浏览器”环境的 Node.js 代码和也在浏览器中运行的实际模块。

所以,当一个 http 请求进来时,流程现在是

  • 加载jsdom node.js模块并创建html文档和窗口

  • 在该文档中,确保添加一个加载 require.js 的脚本元素(浏览器版本,而不是 node.js r.js 脚本)

  • 在窗口“load”事件监听器中获取通过 jsdom 加载的 requirejs 模块。我可以用 var requirejs = window.require 来做到这一点

  • 配置 requirejs 模块(requirejs.config 调用)

  • 使用node.js require方法(不是requirejs方法)显式加载所有 native Node 模块

  • 最终调用“浏览器”的代码

我认为有更好的方法(这肯定是有点绕路),但至少现在可行。

也许其他人来到这里,并发现这很有用

彼得

关于jquery - 如何在 Node Express Web 服务器中使用 requirejs、jquery 和 d3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13850130/

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