我使用 JQuery 为我的网站设置了搜索功能。所有不匹配的结果都通过toggle()删除,页面上有很多数据。如您所见,搜索需要几秒钟才能运行。
为了提供搜索正在运行的一些用户反馈,我尝试用微调器 gif 替换 img 源。
这就是我想要做的。在搜索按钮的 click() 上(或从搜索框中输入):
$('div#search img').attr('src', '/static/img/spinner.gif');
search_contacts(s);
$('div#search img').attr('src', '/static/img/search.gif');
我打开了 Chrome 开发人员工具并显示了网络选项卡。当我尝试搜索时,我看到 spinner.gif 的 GET 请求已注册。问题是此请求设置为“待处理”,并且在search_contacts()
运行时永远不会进行。搜索完成的那一刻,Gif 加载(嗯,304 未在 5 毫秒内修改)。
在运行函数之前让 jquery/javascript 等待属性更改完成的正确方法是什么?