【发布时间】:2018-11-26 05:38:00
【问题描述】:
我有一页,通过 jquery 加载新元素。我的页面有像
这样的事件监听器ipcRenderer.send('getlist');
ipcRenderer.once('return:list', function (e, l, wn) {
console.log('a');
for(let i = 0; i < l.length; i++) {
$('.a').append('<div>'+l[i]+wn[i]'</div>');
}
$('.a').append('<div>End</div>');
});
向页面发送数据的代码:
ipcMain.on('getlist', function (e) {
wn = [];
cfg['a'].forEach(s => {
wn.push(yaml.readSync('charcfg.yaml')['name']);
});
mainWindow.webContents.send('return:list', cfg['a'], wn);
});
在我加载另一个页面并再次加载此页面之前,它可以完美运行。 此事件会触发多次。每次我回到这个页面,它都会去更多次。
我尝试使用
ipcRenderer.once('someevent', function(e, l){...});
它只能使用一次。在第三次重新加载时,它会再次启动多次侦听器。
带有此脚本的代码随页面一起加载!
对不起我的英语。Output
通过jquery加载页面的函数:
const htmlContent = $('.content');
function setContent(s) {
$('.content').animate({
opacity: 0
}, 200, function () {
setTimeout(function () {
htmlContent.load(s + '.html');
$('.content').animate({
opacity: 1
}, 200);
}, 100);
});
}
【问题讨论】:
-
在你的处理程序中发生了多次的到底发生了什么?更具体的上下文会有所帮助。
-
它使用从事件接收的数据在页面上动态添加内容
-
如果你编辑你的帖子会更好,这样我就可以看到它的格式,更容易解释。但究竟发生了什么多次?追加还是整个处理程序?
-
好的,我编辑了我的帖子。多次附加从事件接收的文本。
-
那么是否有像您最初的评论一样涉及的列表,还是只是静态附加?
标签: javascript electron