User Image
← المكتبة

جافاسكربت في أوراكل أبكس (الطريق إلى الاحتراف)

الفصل 30

القسم الثامن - مشروع (1): بناء نظام حفظ تلقائي (Auto-save) ذكي للملفات الطويلة

الهدف من المشروع هو بناء نظام يحفظ بيانات الحقول تلقائياً أثناء كتابة المستخدم، مع استخدام الـ Debounce لضمان خفة الطلبات وإعطاء إشارة بصرية لحالة الحفظ[cite: 1481, 1483].

1. كود الـ AJAX Callback في السيرفر (SAVE_DATA_PROCESS)[cite: 1487]:


BEGIN
    UPDATE my_notes 
    SET note_content = :P10_NOTE_TEXT, last_updated = SYSDATE 
    WHERE note_id = :P10_NOTE_ID; [cite: 1492, 1493, 1494]
    
    apex_json.open_object; [cite: 1497]
    apex_json.write('status', 'success'); [cite: 1498]
    apex_json.close_object; [cite: 1500]
END;
    

2. كود الجافاسكربت الذكي في العميل:


function performSave() { [cite: 1511]
    apex.util.showSpinner($("#P10_STATUS_ICON")); [cite: 1513]
    apex.server.process("SAVE_DATA_PROCESS", { [cite: 1515]
        pageItems: ["P10_NOTE_ID", "P10_NOTE_TEXT"] [cite: 1516]
    }, { [cite: 1517]
        success: function(pData) { [cite: 1518]
            $("#save_status_text").text("تم الحفظ تلقائياً"); [cite: 1520]
            $(".u-Processing").remove(); [cite: 1522]
        } [cite: 1524]
    }); [cite: 1528]
}
// الانتظام والانتظار لمدة ثانيتين بعد آخر حرف يكتبه المستخدم قبل انطلاق الحفظ
var autoSave = apex.util.debounce(performSave, 2000); [cite: 1530, 1531]
    

التعليقات والمناقشات

لا توجد تعليقات بعد — كن أول من يسأل!