weixin_33720078 2016-05-15 13:43 采纳率: 0%
浏览 17

处理Ajax请求

In a page, I am having multiple images. I will show a div container for preview. Here, before loading the image, I will send a request to my server to get image conversion details. Once, its success, I will show the image preview. When user click next/Previous icon, I will load the respective image. But, If user click next/previous icons continuously, Ajax requests will be sending over and over again. Here, If any delay is there in Ajax request. Proper image is not showing in the preview. For example: If user click continously, Ajax request data related to 5.jpg. But, in preview it is showing 4.jpg image. How to handle this.

  • 写回答

1条回答 默认 最新

  • weixin_33716557 2016-05-15 14:06
    关注

    Do this:

    Every time a button is clicked, store the request in a variable.

    var request = $.ajax({
        url: 'your url',
        success: function(data){
        }
     });
    

    Now when the user clicks the button again, in the click handler, abort the old request.

    request.abort();
    

    Something like:

    var request = null;
    $('.button').click(function(){
         if(request){
            request.abort();
         }
    
         request = $.ajax({
            url: 'your url',
            data: 'which image to load',
            success: function(data){
            }
         });
    });
    
    评论

报告相同问题?