是什么触发了“标签”?部分
What is triggering the "Tags" section of Stackoverflow?
找了好几个小时了。在https://stackoverflow.com/questions/ask如何"标签"部分使蓝框出现在下面?
我不认为他们正在使用keyup事件触发器,因为蓝框并没有在每次按键时更新。
您可以通过转到https://stackoverflow.com/questions/ask并输入:
来进行测试。" aadfadasdfasdfasdfasdfasfasdfsaf "
在键入时,您将注意到在键入几秒钟后才会出现蓝色框" aadfadasdfasdfasdfsaf "。不是在。
他们可能在最后一个keyup
事件后1秒调用setTimeout
和clearTimeout
来运行他们的代码。
这只是一个自动补全的例子。有许多方法可以做到这一点。
一种方法是在客户端存储要自动完成的单词列表。这是非常快的,不会有任何延迟(除非你编程一个)。
另一种方法是对服务器进行AJAX调用,并让它返回一个自动补全单词列表。SO就是这么做的。由于您不希望每次用户键入字母时都进行ajax调用,因此实现了延迟以节省带宽并提高性能。
如果你想在自己的网站上实现类似的功能,我建议你看看jQuery插件来实现这一点,因为有很多免费的插件。
编辑:正如你提到的,触发器很可能是一个keyup事件。然而,在使用setTimeout()
显示可能的自动完成列表之前,触发器可能会等待一秒钟左右。
clearTimeout()
。使用Firebug或其他web检查器检查源代码。你会看到一个名为full.js
的文件。它被最小化了,但你可以使用各种在线工具扩展代码;我采用了一种非常懒惰的方法,将所有内容复制/粘贴到jsfiddle中的"javascript"框中,然后点击"tidy"。我相信有更好(和更快)的方法来做到这一点。
StackExchange.tagPreferences
及其子函数initTagRenderer
和StackExchange.inlineEditing
。我认为最后一个函数是导致您所指的特定延迟的函数,但是很难判断。
相关文章:
- 更改标签以匹配 ID 中的数字部分
- 联系人表单变量不会从部分标签传递到 javascript 中
- 跳转到有关主题标签的页面部分
- 在html选择标签中,如何更改所包含选项标签的部分文本的样式
- DIV标签和HTML5元素之间应该使用什么以及有什么区别(部分,文章)
- 使用Java,如何验证/验证Google Analytics异步跟踪代码(分析片段)位于网页源的标签部分下
- AngularJS和SEO-为每个部分设置不同的元描述标签
- 谷歌地图加载部分点击隐藏标签
- 在jqueryMobile HTML页面中使用jquery在提交时刷新部分标签
- 在iFrame中设置基本标签,在域名URL中设置几个部分
- 显示/隐藏标签和部分基于复选框的值
- 禁用基于标签文本部分的单选按钮
- 标签& lt; form>删除ajax请求后的部分代码
- Grails -如何在HTML页面的Meta标签中呈现部分未转义的JSON
- 防止美元.Pjax从移动动态脚本标签到头部部分
- HTML部分中的样式标签
- 如何为标题的部分内容提供ID ?标签
- 是什么触发了“标签”?部分
- 如何测试当一个关键部分提交了什么,'表单'标签,已不存在
- 提取部分标题标签