我有一个使用在LAMP系统上运行的TinyMCE编辑器的表单。我希望创建一个类似于Google文档的自动保存功能。我想到了两个场景,但两者都会在服务器上产生开销。
显然,第一点是不可行的。任何人都可以建议更好地解决第二点问题吗?
修改1
好的,所以第三种选择可能是Thariama的回答和我的第二点的结合。
3)如果有显着变化,例如10个字符或更多,则每60秒发布一次Ajax请求
对此的任何进展都将非常感激。
修改2
好的我已根据第3点制作了我的解决方案的原型。如果有人感兴趣,我的代码流程如下:
我正在使用JQuery。我有一个带有TinyMCE的textarea表单和一个用于存储击键次数的隐藏字段。
tinyMCE.init({
...
// Callback for counting keystrokes in TinyMCE
handle_event_callback : "keyCount"
});
$(function() {
autoSaveContent();
});
// Callback function - Get count, increment it and then set it
function keyCount(e) {
if(e.type == "keypress") {
var count = parseInt($("#keyCount").val());
count++;
$("#keyCount").val(count);
}
}
// Autosave every 10s if there have been over 30 keystrokes
function autoSaveContent() {
var keyCount = parseInt($("#keyCount").val());
if(keyCount > 30) {
tinyMCE.triggerSave();
var formData = $("#programmedItineraryForm").serialize();
$.post("/path/to/save.php", formData, function(data,textStatus) {
if(data.success) {
$("#keyCount").val(0);
}
});
}
setTimeout('autoSaveContent()',10000);
}
答案 0 :(得分:2)
答案 1 :(得分:0)
tinymce.init({
plugins: "autosave"
});