حسین مولوی
5 سال پیش توسط حسین مولوی مطرح شد
5 پاسخ

too many request

سلام من توی event onmouseover ی متد رو صدا میزنم ک از ی api استفاده میکنه
اما وقتی موس رو روش میبرم حداقل سه بار درخواست رو به api میده بعدشم ارور too many request میاد
ممنون میشم کمکم کنید


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

در Vuejs هم اگر به شکل زیر پیاده‌سازی کنید.. هر بار که Mouse روی المان موردنظر میره تنها یکبار تابع شما (مثلا ارسال درخواست به api) اجرا میشه.

HTML:

<div id="mouse">
  <a v-on:mouseover.once="mouseover"></a>
</div>

VUE:

new Vue({
  el: '#mouse',
  data: {
    message: 'Hover Me!'
  }, 
  methods: {
    mouseover: function(){
      console.log(1)
      // api request will be sent once
    }
  }
})

میلاد-م
تخصص : توسعه‌دهنده رابط کاربری - Fron...
@milad 5 سال پیش مطرح شد
0

فکر کنم یادتون رفت کدهاتون رو هم قرار بدین که دوستان بتونند بررسی کنند علت ایجاد مشکل تون رو.


Alimotreb
تخصص : کانفیگ سرور و برنامه نویس
@Alimotreb 5 سال پیش مطرح شد
0

سلام
@ho3einmolavi00

رویدادشو عوض کنید
onclick کنید! که لااقل کلیک زده بشه ، با اینور اونور رفتن موس زیاد کاری نکنه
یا محدوده براش تعریف کنید


mahdi khanzadi
تخصص : Software engineer
@khanzadimahdi 5 سال پیش مطرح شد
0

از مودیفایر once استفاده کنید تا یکبار ایونت اجرا بشه


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

درود

در jquery میشد از متد One استفاده کرد:

$('element').one('mouseover', function() { /* ajax */ });

یه راه دیگه هم استفاده از event های دیگه هست.. مثلا mouseEnter و mouseLeave :

$('element').mouseenter(function() {
    /* Make request, do */
});
$('element').mouseleave(function() {
    /* undo */
});

در جاوااسکریپت مدرن هم به شکل زیر استفاده میشه:

node.addEventListener("mouseover", function() {
    // api request
}, {once : true});

علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

در Vuejs هم اگر به شکل زیر پیاده‌سازی کنید.. هر بار که Mouse روی المان موردنظر میره تنها یکبار تابع شما (مثلا ارسال درخواست به api) اجرا میشه.

HTML:

<div id="mouse">
  <a v-on:mouseover.once="mouseover"></a>
</div>

VUE:

new Vue({
  el: '#mouse',
  data: {
    message: 'Hover Me!'
  }, 
  methods: {
    mouseover: function(){
      console.log(1)
      // api request will be sent once
    }
  }
})

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام