يوجد مشروع حيث يقوم صندوق الإدخال بمراقبة الإدخال في الوقت الفعلي وتشغيل الطلب.
الفكرة الأولى هي استخدام طريقة onchange() على الإدخال التي جربتها، ولكنها لا تعمل إلا بعد تأكيد تغيير القيمة، وهو أمر غير فوري.
لقد تحققت عبر الإنترنت،
$(#fix).on('input propertychange', function(event){});
الطريقة تعمل، ولكنها تتغير في الوقت الحقيقي. تردد الإرسال سريع بعض الشيء.
أسرع وأضف مؤقتًا setTimeout.
$(#fix).on('input propertychange', function(event){ setTimeout(function(){ // تأخير 0.5 ثانية لتنفيذ console.log($(#fix).val()) },500); } );
تأتي المشكلة مرة أخرى، جهاز ضبط الوقت غير متزامن، على الرغم من تأخيره، إلا أنه سيتم تنفيذه دون أي تغيير.
لاحقًا، فكرت في إلغاء الربط والربط، ولكن لم يكن من الممكن الحصول على أي أحداث إدخال للوحة المفاتيح أثناء وقت إلغاء الربط.
كانت الفكرة الأولى في ذلك الوقت هي تشغيل الحدث - حذف المؤقت - إضافة المؤقت - تنفيذ الوظيفة. لقد وجدت أنه لا يزال غير جيد ولا يمكن حذف المؤقت، لذلك توقفت عن تنفيذه ببساطة.
وأخيرا، قمت بالتحقق عبر الإنترنت ووجدت طريقة جديدة.
طريقة الطابع الزمني.
المبدأ هو أنه في كل مرة يتم فيها تعديل المتغير العام والطابع الزمني عن طريق الإدخال، ستتم مراقبة الطابع الزمني الجديد بتأخير قدره 0.5 ثانية وهو يساوي الطابع الزمني المرتبط، ثم انتقل إلى الخطوة التالية.
-----أتش تي أم أل-----
<input type=text id=fix>------script-----var last;$(#fix).on('input propertychange', function(event){ //#fix هو الخاص بك input Box last = events.timeStamp; // استخدم الطابع الزمني للحدث لتحديد الوقت، بحيث يقوم كل حدث بتعديل قيمة الأخير. لاحظ أن الأخير يجب أن يكون متغيرًا عامًا setTimeout(function(){ // قم بتعيين تأخير زمني قدره 0.5 للتنفيذ إذا (آخر -event.timeStamp==0) // إذا كان الفارق الزمني هو 0 (أي أنه لم يحدث أي حدث مفتاح آخر خلال 0.5 ثانية بعد التوقف عن الكتابة)، فافعل ما تريد القيام به { console.log($(#fix).val()) } } ، 500)؛})؛تلخيص
ما ورد أعلاه هو الكشف في الوقت الفعلي عن إدخال HTML5 وتحسين التأخير الذي قدمه لك المحرر، وآمل أن يكون مفيدًا لك. إذا كانت لديك أي أسئلة، فيرجى ترك رسالة لي وسيقوم المحرر بالرد عليك في الوقت المناسب. أود أيضًا أن أشكر الجميع على دعمكم لموقع VeVb للفنون القتالية!