2012-10-26 23 views
5

का उपयोग कर मेरे पास एक LAMP सिस्टम पर चल रहे TinyMCE संपादक का उपयोग कर एक फ़ॉर्म है। मैं Google डॉक्स के समान एक ऑटोओव सुविधा बनाना चाहता हूं। मैंने दो परिदृश्यों के बारे में सोचा है, हालांकि, दोनों सर्वर पर ओवरहेड का उत्पादन करेंगे।Google डॉक्स स्टाइल ऑटोसेव TinyMCE

  1. पोस्ट KeyUp
  2. पोस्ट एक Ajax अनुरोध हर 60 के दशक

जाहिर है पहला बिंदु संभव नहीं है पर एक Ajax अनुरोध। क्या कोई दो बिंदुओं के लिए बेहतर समाधान सुझा सकता है?

संपादित करें 1

ठीक है, तो एक तीसरा विकल्प Thariama के जवाब और मेरी दूसरी बात का एक संयोजन हो सकता है।

3) एक Ajax अनुरोध हर 60 के दशक के बाद अगर कोई है signifcant परिवर्तन जैसे 10 वर्ण या इस बारे में अधिक

किसी भी अग्रिम बहुत सराहना की जाएगी।

संपादित 2

ठीक है मैं बिंदु 3. मामले किसी में के आधार पर मेरे समाधान नमूने है मेरी कोड रुचि है इस तरह बहती है:

मैं JQuery का उपयोग कर रहा हूँ। मेरे पास एक टेक्स्टरेरा वाला एक फॉर्म है जिसमें टिनीएमसीई संलग्न है और कीस्ट्रोक की गिनती स्टोर करने के लिए एक छिपी हुई फ़ील्ड है।

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

जब संपादक एजेक्स अनुरोध के साथ फोकस और/या हर 60s खो देता है तो आप बचत को ट्रिगर कर सकते हैं। – Andreas

उत्तर

2

हम्म, कई विकल्प हैं। प्वाइंट 1 वास्तव में थोड़ा महंगा है। मुझे लगता है कि संपादक में दर्ज नए अक्षरों की संख्या के आधार पर अनुरोध भेजना एक अच्छा विचार होगा। उदाहरण के लिए हर 5-10 नए पात्रों को एक अनुरोध भेजें। आप केडडाउन या ऑनअप पर काउंटर बढ़ा सकते हैं और अनुरोध भेजते समय उस काउंटर को रीसेट कर सकते हैं।

0
tinymce.init({ 
    plugins: "autosave" 
}); 
+0

कुछ स्पष्टीकरण के बारे में कैसे? – Almo

+0

यदि आप गलती से टैब बंद करते हैं तो यह आपके द्वारा टाइप की गई चीज़ों को सहेजने के लिए स्थानीय कैशिंग का उपयोग करता है। –

संबंधित मुद्दे