首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jsdom窗口缓存

jsdom窗口缓存
EN

Stack Overflow用户
提问于 2011-10-20 07:13:12
回答 2查看 746关注 0票数 14

使用express.js中的jsdom.jsdom(),我创建了一个带有一些“基本”布局标记的文档,并将一些客户端库(如jQuery )附加到它的窗口。

如果只需要做一次这样的设置就好了。

问题是窗口文档的DOM会根据请求的url而改变。有没有办法让每个请求都从相同的缓存窗口对象开始并增强它,或者必须在每个请求时从头开始设置?

EN

回答 2

Stack Overflow用户

发布于 2013-09-10 21:00:02

听起来你想要一个简单的JavaScript对象散列?

代码语言:javascript
复制
var cache = Object.create(null); // avoids spurious entries for `hasOwnProperty` etc.

// Incoming request happens, assume `req.url` is available...

if (req.url in cache) {
    processDom(cache[req.url]);
} else {
    jsdom.env(req.url, function (err, window) {
        if (err) {
            // handle error
            return;
        }
        cache[req.url] = window;
        processDom(cache[req.url]);
    });
}
票数 1
EN

Stack Overflow用户

发布于 2012-04-10 04:13:38

我认为这是不可能的。当您使用jsdom构建器创建一个新文档时,您指定的任何自定义选项只会影响当前正在创建的文档。在此之后创建的任何其他文档都将依赖于默认功能。

但是,您实际上可以修改这些默认特性--我认为这就是您想要的。在创建任何文档之前,您可以修改所有将来文档的这些默认值:

代码语言:javascript
复制
require('jsdom').defaultDocumentFeatures = {
  FetchExternalResources   : ['script'], 
  ProcessExternalResources : false,
  MutationEvents           : false,
  QuerySelector            : false
}

通过阅读jsdom的README可以获得对每个选项的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7829334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档