سؤال

هذا القليل من التشدق ، ولكن أيضا سؤال مصلي للغاية. لقد غيرت jQuery تسلسل Ajax pharial على النحو التالي:

يضيف jQuery 1.4 دعمًا للتسلسل المتداخل للمعدة في jquery.param ، باستخدام النهج الذي شاعه PHP ، ويدعمه Ruby on Rails. على سبيل المثال ، {foo: ["bar" ، "baz"]} سيتم تسلسلها باسم "foo [] = bar & foo [] = baz".

هل قبضت على ذلك؟

أنت تسمي معلمتك foo. jQuery الآن يعيد تسمية ذلك إلى foo[] خلف ظهرك إذا كانت قيمة فو هي صفيف. والسبب في ذلك هو أن بعض php-ers و Rubyists يتوقعون أن يعيد واجهات برمجة تطبيقات الطرف الثالث تسمية الأشياء لهم.

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

حتى الوثائق تتفق معي:

إذا كانت القيمة عبارة عن صفيف ، فإن jQuery تقوم بتسلسل قيم متعددة بنفس المفتاح ie {foo: ["bar1" ، "bar2"]} تصبح '& foo = bar1 & foo = bar2'.

هل أنا محق في التفكير في أن هذه مجرد دعوة حكم سيئ من فريق jQuery؟

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

المحلول

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

عمر او قديم:

  • foo: "bar" خرائط ل "foo=bar" خرائط ل foo: "bar".
  • foo: ["bar"] خرائط ل "foo=bar" خرائط ل foo: "bar".
  • foo: ["bar", "baz"] خرائط ل "foo=bar&foo=baz" خرائط ل foo: ["bar", "baz"].

جديد:

  • foo: "bar" خرائط ل "foo=bar" خرائط ل foo: "bar".
  • foo: ["bar"] خرائط ل "foo[]=bar" خرائط ل foo: ["bar"].
  • foo: ["bar", "baz"] خرائط ل "foo[]=bar&foo[]=baz" خرائط ل foo: ["bar", "baz"].

والآن كل شيء RoundTrips بشكل جيد ولا داعي للقلق بشأن تلقي بيانات الصفيف أو بيانات غير المباراة اعتمادًا على عدد العناصر الموجودة في الصفيف لتبدأ. للحصول على أقصى قدر من الأناقة ، foo: [] يجب أن تسلسل أيضا إلى foo[] (مفتاح بدون قيمة) ، يشير إلى قائمة 0 ، لكن JQuery 1.4 لا يفعل ذلك. ربما ينبغي. قون

نصائح أخرى

أنا أعترض. لقد نجحت المؤتمر القديم بشكل جيد ، ويستمر في العمل بشكل جيد لمهارات الويب الكلاسيكية مثل بيرل CGI.pm. أعتقد أن jQuery تقوم فقط بتبديل مؤتمر عمل لآخر ، ولا أعرف أن أي شخص على كلا الجانبين سيكون سعيدًا.

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