javascript - Inputosaurus / jQuery 加载时间
问题描述
我正在使用Inputosaurus向我的客户管理系统添加一些精美的自动完成标签。就化妆品和生产力而言,这是一个漂亮的系统。
问题是大量的加载时间。
HTML 页面加载了几个图像(有时数百个),每个图像都有自己的相同自动完成术语列表的实例。生成的 JavaScript 在最终的 HTML 文件中如下所示:
<script>
$('#tags_0001').inputosaurus({
width : '100%',
autoCompleteSource : ["A Midsummer Night's Dream","A Modest Proposal","A Particular Entertainment","A Tale of a Tub","A Yorkshire Tragedy","A.G. Werner","Abbasid","Abbe de la Roque","Abel Berland","Aborigines","Abou Mandour","Aboukir","Abraham Munting","Abraham van Diepenbeeck","Absalom and Achitophel","Abu Mandour","Abukir","Abyssinia Map","Academie Royale des Sciences","Accipies","Accounting","Achaean","Achitecture","Acts of Parliament","Admiral Mendoza portrait","Aegean Sea","Aeneid","Aeneis","Aesop","Aethiopia","Aetiis","Afghanistan"],
activateFinalResult : true});
$('#tags_0002').inputosaurus({
width : '100%',
autoCompleteSource : ["A Midsummer Night's Dream","A Modest Proposal","A Particular Entertainment","A Tale of a Tub","A Yorkshire Tragedy","A.G. Werner","Abbasid","Abbe de la Roque","Abel Berland","Aborigines","Abou Mandour","Aboukir","Abraham Munting","Abraham van Diepenbeeck","Absalom and Achitophel","Abu Mandour","Abukir","Abyssinia Map","Academie Royale des Sciences","Accipies","Accounting","Achaean","Achitecture","Acts of Parliament","Admiral Mendoza portrait","Aegean Sea","Aeneid","Aeneis","Aesop","Aethiopia","Aetiis","Afghanistan"],
activateFinalResult : true});
$('#tags_0003').inputosaurus({
width : '100%',
autoCompleteSource : ["A Midsummer Night's Dream","A Modest Proposal","A Particular Entertainment","A Tale of a Tub","A Yorkshire Tragedy","A.G. Werner","Abbasid","Abbe de la Roque","Abel Berland","Aborigines","Abou Mandour","Aboukir","Abraham Munting","Abraham van Diepenbeeck","Absalom and Achitophel","Abu Mandour","Abukir","Abyssinia Map","Academie Royale des Sciences","Accipies","Accounting","Achaean","Achitecture","Acts of Parliament","Admiral Mendoza portrait","Aegean Sea","Aeneid","Aeneis","Aesop","Aethiopia","Aetiis","Afghanistan"],
activateFinalResult : true});
</script>
现在考虑这个例子截断了“autoCompleteSource”列表。实际上,它通过 1,000 多个术语(每个实例)产生超过 19-20 百万的 HTML 字符数!
这似乎是 jQuery 引用这些术语的数组(或变量字符串)的理想情况,但我真的不确定 HTML 是否支持这一点。
我很惊讶在 Web 上没有看到太多关于此的内容。我希望这仅仅是我缺乏用于糟糕搜索的 JS 词典,而不是根本没有解决方案。
我敢肯定,这里的其他人以前也遇到过这种情况——在这种情况下我应该使用什么替代方法?
如果我遗漏了任何重要的诊断信息,请告诉我。
提前谢谢你。
解决方案
用户将输入一个单词,在他实际输入任何内容之前向客户发送数千个可能的单词是多余的。相反,您应该等待用户输入前几个字符,然后将它们发送到服务器,查询并过滤所有可能的术语,并且只将匹配的那些返回,然后将该小列表发送回客户端,再次过滤它在用户已经输入的其他字符上。
谷歌的话:AJAX 和fetch()
.
推荐阅读
- ansible - Ansible 角色 - 无法检测过滤器插件
- javascript - 设置用户代理不适用于 puppeteer / tor 配置
- angular - 具有大型数据集的 Mat Multi Select 中的性能问题
- python-3.x - 如果boundingRect接触线,如何计算车辆数
- mysql - 错误:在 MySQL 中将 Varchar 值更新为 Datetime
- java - 内置的 HashTable 类可以显示上一个和下一个键吗?
- cookies - Cookie 未在浏览器上设置
- html - 将图像粘贴到 div 的底部 - 响应式图像问题(网格/填充)
- discord.js - 让 Rock、Paper、Scissors 在 discord.js 中通过反应工作
- c# - 将多个文本框中的值插入一列,但为每个文本框值创建一个新行