相关疑难解决方法(0)

jQuery异步函数调用,没有AJAX请求

这看起来很傻,但我找不到如何使用不涉及某些服务器端请求的jQuery进行异步函数调用.我有一个缓慢的函数,遍历很多DOM元素,我希望浏览器在此函数运行时不会冻结.我想在调用慢速函数之前显示一个小指标,然后当慢速函数返回时,我想隐藏指标.我有以下内容:

$('form#filter', parentNode).submit(function() {
  var form = $(this);
  indicator.show();
  var textField = $('input#query', form);
  var query = jQuery.trim(textField.val());
  var re = new RegExp(query, "i");
  slowFunctionCall(); // want this to happen asynchronously; all client-side
  indicator.hide();
  return false;
});
Run Code Online (Sandbox Code Playgroud)

目前我提交表格并且指标未显示,浏览器冻结,然后slowFunctionCall完成.

编辑:我使用了Vivin的答案,特别是Sitepoint链接来获得以下解决方案:

var indicator = $('#tagFilter_loading', parentNode);
indicator.hide();
var spans = $('div#filterResults span', parentNode);
var textField = $('input#query', parentNode);
var timer = undefined, processor = undefined;
var i=0, limit=spans.length, busy=false;
var filterTags = function() {
  i …
Run Code Online (Sandbox Code Playgroud)

javascript forms jquery asynchronous function

41
推荐指数
3
解决办法
6万
查看次数

标签 统计

asynchronous ×1

forms ×1

function ×1

javascript ×1

jquery ×1