中止jQuery().load()

Dan*_*ake 25 javascript ajax jquery

jQuery库的.load()功能允许您有选择地从另一个页面加载元素(受某些规则约束).我想知道是否可以中止加载过程.

在我们的应用程序中,用户可以浏览项目列表.他们可能会选择单击一个按钮来加载并显示另一个文档中有关项目的其他信息(这可能需要一些时间).如果他们在列表中选择了不同的项目而.load()仍在进行中,我希望中止加载.

这可能吗?它甚至值得吗?有任何想法吗?

Nic*_*ver 36

您无法.load()直接执行此操作,因为它返回用于链接的jQuery对象,但如果您更改为完整$.ajax()调用,则.html()可以像这样:

var xhr = $.ajax({
            url: 'mypage.htm',
            success: function(data) {
              $("#myElement").html(data);
            }
          });
//if needed, abort the request later..
xhr.abort();
Run Code Online (Sandbox Code Playgroud)

这使用.abort()XMLHttpRequest对象上方法来中止加载.


Hom*_*mer 8

尼克的回答几乎是我所需要的,但并不完全.我使用.load()只加载页面中的图像.所以,扩大尼克的答案......

而不是......

$('#myElement').load('mypage.htm #myImage');
Run Code Online (Sandbox Code Playgroud)

我现在正在使用......

var xhr = $.ajax({
            url: 'mypage.htm',
            success: function(data) {
              $("#myElement").html($(data).find("#myImage"));
            }
          });
//if needed, abort the request later..
xhr.abort();
Run Code Online (Sandbox Code Playgroud)