Ace 代码编辑器:缓存模式对象
Ace Code Editor : Caching mode object
我有一个网络应用程序,我必须在多个地方显示 ace 编辑器。所以我有一个通用例程,它使用给定的根元素(咖啡中的代码)加载 ace 编辑器
editor = window.ace.edit(root)
editor.setTheme("ace/theme/github")
editor.getSession().setMode("ace/mode/json")
我遇到的问题是,每次设置模式时,都会从服务器获取 json-worker。似乎设置模式会启动 web worker,而 web worker 必须从 url.
中获取代码
我尝试缓存模式的 实例 并设置它,但这似乎根本没有改变行为。
有没有什么办法可以让worker js加载一次,在后续使用中重复使用,而不用从服务器重新加载?
这是不可能的,因为每个 session 都会创建自己的 worker。在主线程中将 worker 的源代码作为文本加载,并使用它来创建 blob object 与在 worker 中多次加载它相比会很麻烦且性能较低。
如果您只关心网络获取,请尝试为该文件设置适当的缓存 headers。如果所有编辑器只需要一个 worker,则必须修改 ace。您可以使用 github 创建功能或拉取请求。
我有一个网络应用程序,我必须在多个地方显示 ace 编辑器。所以我有一个通用例程,它使用给定的根元素(咖啡中的代码)加载 ace 编辑器
editor = window.ace.edit(root)
editor.setTheme("ace/theme/github")
editor.getSession().setMode("ace/mode/json")
我遇到的问题是,每次设置模式时,都会从服务器获取 json-worker。似乎设置模式会启动 web worker,而 web worker 必须从 url.
中获取代码我尝试缓存模式的 实例 并设置它,但这似乎根本没有改变行为。
有没有什么办法可以让worker js加载一次,在后续使用中重复使用,而不用从服务器重新加载?
这是不可能的,因为每个 session 都会创建自己的 worker。在主线程中将 worker 的源代码作为文本加载,并使用它来创建 blob object 与在 worker 中多次加载它相比会很麻烦且性能较低。 如果您只关心网络获取,请尝试为该文件设置适当的缓存 headers。如果所有编辑器只需要一个 worker,则必须修改 ace。您可以使用 github 创建功能或拉取请求。