javascript - 我用如下JS代码获取百度搜索下拉框关键字,为什么会时灵时不灵?
大家讲道理
大家讲道理 2017-04-10 15:55:34
[JavaScript讨论组]

麻烦大家帮我看下,如图获取百度搜索热词,在自己站点上显示下拉选项实现搜索。如下代码可以实现,但是会时灵时不灵,尚且不知道是哪里出了问题。

调试时发现,出现问题的时候, jsonp 正常请求没问题。但回调函数不是每次都会按预期的结果正常执行。

测试浏览器 360极速浏览器 极速模式。

在线Demo :http://hxy100.gitcafe.io/gh-demos/baidu-suggest/demo.html




    
    中国微商第一新媒体-微商创业,运营,推广,管理者学习交流平台-商贾之家
    
    
    
    
    
    


    

商贾之家-微商第一新媒体

设为首页 | 我要投稿

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(2)
PHP中文网

问题是在两次紧接着的DOM操作间会产生一个race condition,在前一次DOM完成之前下一次紧接着开始了。

$(sugp).hide().children('ul').empty(); - 1
$(sugp).children('ul').html(html); - 2

最简单的优化是去掉第1句,剩第二句,就没有race condition了。

但是这样设计还有缺陷,应该考虑对keyup的handler进行debounce,并且把getDBJson调用重构成异步执行_.defer或者_.delay,这样更新列表对敲击键盘的体验的影响可以减到最小。

秘技的DOM操作应该用尽可能快的调用,比如用document.getElementById替代$('#..'),用.innerHTML=...替代.html(...),应该避免不必要的hide()调用。

黄舟

我就想知道你是怎么绕过跨域的……

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号