是否可以使用jsdom获取网站的更改/实时DOM?
例如:
客户端
在我的test.html
文件中,我有一个按钮,它会添加新的<div class="p">
元素:
$('#button').click(function(){
$('body').append('<div class="p">new</div>');
});
然后我有另一个按钮调用服务器上的一个函数(使用NowJS或Socket.IO)。
服务器
现在,在我的server.js
文件中,我想要使用div
计算所有附加的class="p"
元素:
everyone.now.countDiv = function() {
var jquery = fs.readFileSync("./jquery16.js").toString();
jsdom.env(
{
html: 'http://localhost:8080/test.html',
src: [
jquery
],
done: function(errors, window) {
var $ = window.$;
var len = window.$('.p').length;
console.log("Divs: ", len);
}
});
}
我知道我可以计算客户端上的元素并将其传递给服务器。但我感兴趣的是jsdom是否可以访问“新/当前”DOM。
我假设jsdom读取text.html
的DOM,但无法访问网站的实时DOM!?
答案 0 :(得分:2)
即使jsdom允许您修改模板的DOM,它仍然保留在服务器端。
服务器端与客户端DOM无关,或者您称之为“实时DOM”。
答案 1 :(得分:0)
您可能需要查看NowJS - http://nowjs.com/和Socket.io - http://socket.io/(包含在NowJS中)。
NowJS允许您从服务器到客户端共享功能和数据,反之亦然。