سؤال

أنا فقط أتساءل ما هي أفضل الممارسات العامة لحفظ البيانات في نماذج AJAX. في التجارة الإلكترونية فور على سبيل المثال ، في كل مرة تقوم فيها بتغيير قيمة في قائمة الكائنات (لنفترض أنك تقوم بتغيير كمية عنصر معين بترتيب) ، فإنه يقوم بتحديث قاعدة البيانات باستخدام مكالمة Ajax.

هل من الأفضل أن يضغط المستخدم يدويًا على "حفظ" أو "تحديث" عند الانتهاء من تحرير نموذج ، أو إذا كنت تستطيع (لديك إعداد بديل Ajax) ، لحفظ البيانات تلقائيًا في كل مرة يتغير فيها شيء ما؟

يبدو أن مهن Stack Overflow يحفظ "مسودة" من ملف التعريف الخاص بك كل بضع ثوان باستخدام بعض الأشياء Ajax.

على هذا النحو ، يبدو أن هناك 3 طرق لحفظ البيانات في نموذج إذا كان لديك AJAX:

  1. زر الضغط على المستخدم ، يحفظ جميع البيانات في وقت واحد ، وليس جيدًا إذا كانت البيانات مهمة
  2. احفظ كل فاصل زمني
  3. احفظ كل تغيير

بماذا توصي؟

هل كانت مفيدة؟

المحلول

سؤال جيد. لا أعتقد أن هناك أفضل ممارسة يناسب الجميع يغطيها الكل مواقف. بشكل عام ، كلما كان الحل الخاص بك أكثر سهولة في الاستخدام ، كلما زاد تعقيد التنفيذ ، كلما قل احتمال حدوث حل مناسب مهين (ما لم تكن حذراً للغاية).

أيضا ، هناك آثار على أي نهج اخترت الذهاب معه. على سبيل المثال ، يمكن أن ينقذ التلقائي بشكل دوري ليس كن فكرة جيدة حيث يتم التحقق من صحة البيانات الكبيرة. قد يكتب المستخدم بعض الأشياء ، ويحصل على رسالة خطأ بعد بضع ثوان. ستكون التعليقات الفورية أكثر فائدة للمستخدم في مثل هذه الحالة ، حيث من الممكن أن تكون المدخلات التي أدت إلى التحقق من صحة الفشل ، على سبيل المثال ، قبل بضعة إجراءات ، لذلك قد يكون مربكًا إلى حد ما للمستخدم.

حفظ كلما قام المستخدم بتغيير شيء ما (لوحة مفاتيح ، واختيار مربع الاختيار ، وما إلى ذلك) بدا لكي تكون الطريق للانتقال من منظور قابلية الاستخدام ، ولكن مرة أخرى ، يعتمد ذلك على ما تفعله ويمكن أن يكون له آثار جانبية سلبية. على سبيل المثال ، إذا كان المستخدم على اتصال بطيء ، فقد يشعر/هي أن موقعك بطيء أو عربات التي تجرها الدواب. كما أنه سيؤدي إلى استفسارات قاعدة بيانات أكثر بكثير من طريقة "Save Save" في المدرسة القديمة.

أعتقد أن هناك طريقة واضحة للالتفاف على بعض التحذيرات المذكورة أعلاه هي دمج التحقق من صحة جانب العميل على الإطلاق ، ولكن ما ينجح في النهاية قد يكون مصلحًا لما الخاص بك مختبري المدخل قل.

التوصية النهائية: قم بإنشاء نماذج "انقر" للحفظ "على الطراز القديم وحسن من هناك ، مع التأكد من عدم كسر الأمور بدون JavaScript (إلا إذا كان لديك إذن صريح من سلطة أعلى). أتمنى أن يكون هذا كل شيء هراء.

نصائح أخرى

كل هذا يتوقف على الموقف. إذا كان النموذج سيتغير بسبب إدخال المستخدم ، فقد يتم تقديم نموذج حفظ/تحديث بشكل أفضل في كل تغيير. وإلا فانتظر إجراء مستخدم صريح.

لا يمكنني رؤية المتاعب إلا في الأفق إذا قمت بتبني استراتيجية تلقائية للشكل ..

أعلم أن هذا المنشور قديم ، لكني أحب هذا الحل البسيط ، إذا قام المستخدم بتغيير بيانات SOM في النموذج الخاص بك ومحاولة ترك الصفحة دون حفظها ، فأنا أطلب من رسالة تذكر

في عالمي. js:

var validate=false;
window.onbeforeunload = function() { if(validate) return "You made some changes, are you sure you want to leave?"; };

في صفحة النموذج ، (فعلت ذلك في jQuery):

$('input,textarea,select').change(function(){ validate=true; });
$('form').submit(function() { validate=false; });

برق!

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top