سؤال

لدي نموذج أعدده حاليًا مع بعض وظائف JavaScript ثم نشره مع JQuery .ajax () إلى إجراء وحدة تحكم MVC. لديّ القليل من الأسئلة حول خياراتي إذا أردت إضافة دعم تقليدي (لا جافا سكريبت) لنشر هذا النموذج.

1) الشيء هو أن لدي بعض البيانات التي ليست في الحقول ولكنها مجرد نص في divs. نظرًا لأنني نشرت حاليًا مع Ajax ، يمكنني الحصول على محتويات DIVs هذه بواسطة هويةها قبل النشر وإدراجها في المنشور. أفترض أن هذه المعلومات ستكون مفقودة من منشور تقليدي.

فكرة واحدة هي صنع <input> لهذه divs أيضا ولكن إخفاءها في الصفحة. ثم استخدم تلك الموجودة في المنشور.

2) إذا قررت استخدام Ajax Post فقط ، فهل يمكنني التخلص من النموذج تمامًا؟

3) بالنظر إلى أنني أبقى مع Ajax Post ، ما هو التنسيق الذي تقترح استخدامه لنشر القيم؟ JSON ، complimited (مشكلة في البيانات المعقدة) ، شيء آخر؟

4) هل تدعم عادة كلا الاتجاهين؟ لأنه إذا نظرت إلى أشكالاتي في الوقت الحالي ، فإنهم يستخدمون الكثير من وظائف jQuery و jQuery واجهة المستخدم ، وستكون هذه المبالغة في التنفيذ بدون JavaScript. ما مدى احتمالية تمكين المستخدمين JS وهل من المقبول فقط القول "JS مطلوب"؟

بالنسبة لهذه الحالة الملموسة ، أقوم ببناء تطبيق Inhouse ، عند الطلب لن يكون موجهًا على الويب (على الأقل ليس بعد) ، لذلك لدي خيار للقول إن JS مطلوب.

تاي

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

المحلول

إذا كنت ترغب في السير في طريق الحفاظ على موقع عملي بدون JavaScript ، فأنا أقترح أن تبدأ من خلال عمل موقع يعمل بدونه ، ثم استخدم JavaScript لتعديل تلك الواجهة لما تريده حقًا مع JavaScript. هذا من شأنه أن يبدأ بدء جميع المدخلات الواردة في input عناصر ، ثم استبدال تلك العناصر باستخدام JavaScript div عناصر - أو ، بشكل أكثر واقعية ، إزالة inputs وإظهار ما قبل div عناصر.

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

أنا دائما أتسلسل لطلب المعلمات ، تماما مثل النموذج عادة. أسهل طريقة للقيام بذلك هي مع jQuery serialize الطريقة ، ولكن هذا لن يعمل إلا على المدخلات. يمكنك أيضًا إنشاء تجزئة (أزواج القيمة الرئيسية في كائن) وتزويد ذلك كمعلمة بيانات لـ AJAX. سيتم التسلسل تلقائيًا لطلب المعلمات. سيتطلب استخدام أي شيء آخر أن تفرط في استخدام الكود الخاص بك بدلاً من رمز ربط النموذج في MVC.

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

نصائح أخرى

شكرا على نصيحة توماس، رمز هنا لعرض تنسيق الماوس تحت المؤشر: giveacodicetagpre.

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