too many request

- 2 هفته پیش
توسط علی بیات آپدیت شد
ho3ein ( 575 تجربه )
2 هفته پیش
تخصص : back-end developer

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

میلاد ( 98310 تجربه )
2 هفته پیش
تخصص : طراح رابط کاربری - Front-End

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

Alimotreb ( 167092 تجربه )
2 هفته پیش
تخصص : کانفیگ سرور و برنامه نویس

سلام
@ho3einmolavi00

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

mahdi khanzadi ( 49707 تجربه )
2 هفته پیش
تخصص : برنامه نویس سمت سرور

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

علی بیات ( 191857 تجربه )
2 هفته پیش
تخصص : توسعه دهنده ارشد وب

درود

در 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});
علی بیات ( 191857 تجربه )
2 هفته پیش
تخصص : توسعه دهنده ارشد وب

در 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
    }
  }
})
برای ارسال پاسخ باید وارد سایت شوید