gpt4 book ai didi

javascript - 用于协作代码编辑的 Ace Editor 和 meteor : Observe hangs app

转载 作者:行者123 更新时间:2023-11-30 12:58:38 51 4
gpt4 key购买 nike

我正在尝试使用 Ace 编辑器在 Meteor 中制作一个基本的协作代码编辑器。javascript如下:变量文件Meteor.startup(函数(){

        Session.set("file", "fileID");
var query = Files.find({_id : Session.get("fileId")});

var handle = query.observe({
changed : function(newDoc, oldDoc) {
if(editor !== undefined){
console.log("doc was changed from ", oldDoc.contents, "to ", newDoc.contents);
editor.setValue(newDoc.contents);
}
handle.stop();
}
});

editor.getSession().on('change', function(e) {
// update the File collection
if(Session.get('file')) {
Files.update({_id: Session.get("file")},
{ $set :
{
contents : editor.getValue()
}
});
}
});

});

编辑器能够毫不费力地更新数据库,但是,处理观察更改和将文档设置为新值的查询基本上只是挂起并且不执行任何操作。有什么问题?或者一般来说,解决这个问题的更好方法是什么(让 ace 编辑器使用 meteor 协作......假设我想自己编写代码......而不是使用陨石或其他东西)

谢谢!

最佳答案

除非您编写和调试大量代码,否则直接将 ace 编辑器与 Meteor 一起使用将导致操作滞后和用户之间的笨拙交互。

另一种方法是将 ShareJS 堆栈附加到 Meteor,因为它与 ace 集成得非常好。事实上,在查看了在 Meteor 中进行协作编辑的其他方法后,我最终这样做了:

https://github.com/mizzao/meteor-sharejs

这里有一个(过时的)演示:http://documents.meteor.com

关于javascript - 用于协作代码编辑的 Ace Editor 和 meteor : Observe hangs app,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18165098/

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