选择和选择2有什么区别?

2020/11/02 08:22 · javascript ·  · 0评论

拣选选择二是扩展selectboxes两种比较流行的库。

两者似乎都得到了积极的维护,Chosen较老并且支持jQuery和Prototype。

Select2仅是jQuery,其文档说Select2受选择的启发,但没有详细说明所做的任何改进(如有)或其他重写原因。

两个库具有几乎相同的功能集,我发现的唯一比较是一个不确定的jsperf测试页。

这些库中的任何一个都比其他库有什么优势吗?

从Select2 3.3.1开始,以下是其README.md中记录的内容

Select2支持哪些选择的功能?

  • 处理大型数据集:选择要求将整个数据集作为option标记加载到DOM中,这限制了它只能用于小型数据集。Select2使用一个函数来即时查找结果,从而允许它部分加载结果。
  • 结果分页:由于Select2可处理大型数据集,并且一次必须支持分页,因此仅加载少量匹配结果。当用户滚动到当前加载的结果集的底部以允许“无限滚动”结果时,Select2将调用搜索功能。
  • 结果的自定义标记:选择仅支持呈现文本结果,因为这是标签支持的唯一标记optionSelect2提供了一个扩展点,可用于生成任何类型的标记来表示结果。
  • 动态添加结果的能力:Select2提供了从用户输入的搜索词中添加结果的能力,从而可以将其用于标记。

恕我直言,选择“维护”,但不是“积极维护”。341个问题和51个选择的拉取请求。Select2有128个问题和25个拉取请求。我认为这些模式基本上是

  • 选择表面上对您更具吸引力的那个
  • 在一个或两个应用程序中使用它
  • 遇到定制问题或限制
  • 也许尝试通过问题和请求请求与社区合作
  • 最终受够了,并使用在此过程中学到的知识来建立自己的

无论您选择哪一个,如果您的用例正好在他们的最佳选择中,则任何一个都可以使用。如果没有,您最终将不得不编写自己的代码或对它们进行大量自定义。无论哪种情况,具体选择哪个都不是那么重要。我想在这里我将与@Andy Ray和@paul一起使用,Select2可能是更好的初始选择。

另一个值得一提的区别是,它Chosen是在Sass和中开发的CoffeeScriptSelect2平原CSS和是JS这是我个人的选择,Sass并且CoffeeScript不必要的复杂性层使得调试困难。

在尝试了两种方法之后,我决定都不使用它们-尝试获得Select2创建项功能的过程非常麻烦,因为在连接到<select>元素时根本无法做到这一点-只是没有很好地考虑到我会遇到的麻烦跳过。

我已经决定使用selectize.js,它只是将新<option>...</option>元素添加到表单的DOM中,这是理智的。它也确实可以使用LESS-但我会绕过它,而CSS直接在您的项目中定制编译结果

selected.js与select2.js

  • 麻省理工学院的许可证
  • 依存关系:

    • Select2:jQuery
    • 选择:tbc
  • 桌面浏览器支持:

    • 选择2:IE8 +
    • 选择:IE8 +
  • 设备支持:

    • Select2:不清楚
    • 选择:在iPhone,iPod Touch和Android移动设备上禁用
  • 重量(最小):

    • 选择2:57KB
    • 选择的:27KB
  • 用法:Select2支持更多的“精美” UI(请参阅“模板”)
  • 这两个代码库都可以在Github上找到

    • Select2:贡献:非常活跃
    • 选择:捐款:比Select2少3倍

select2.js contributions
chosen.js contributions

ps。当我发现有关遗漏点的更多信息时,我将尝试更新此答案

首先,让我告诉您Chosen和Select2是两个很棒的插件,这是我对Chosen的个人经验。关于选择,他们所说的都是正确的。

PēterisCaune指出问题select已存在2年,但仍无官方解决方法。根本没有关于API的好的文档。已经指出了很多次(观看第671期),但仍然一无所获。他们花了将近2年的时间解决了这个问题,如果您overflow:hidden在显示div之前隐藏了div,则选择的选择基本上是行不通的(并且您必须使用一个witdh:X%根本不会知道是否不查找该问题的选项)。

我要说的主要问题是修复速度,如第92期中的DelvarWorld所述:

我的请求请求解决了这个问题,但像我的另一个请求和许多选择的请求一样,它们被忽略了。该项目的贡献者太多,而代码库却太少。

我首先选择了Chosen的MIT许可证,但遇到了所有这些问题(下拉菜单没有找到API,隐藏了几个小时的溢出隐患),所以我决定切换到select2,因为它具有更好的文档,没有下拉菜单bug和更快的修复。

在Select2中起作用但在Chosen中不起作用的一项功能是select在具有overflow: hidden或的元素内部overflow: auto

在此处输入图片说明

选择的对应问题:https : //github.com/harvesthq/chosen/issues/86

我发现使用这两个插件的一些区别:

  • 使用select2,您可以在选项中的任何位置进行搜索。例如,如果您有一个名为ABCDEFG的选项,并且在CDE中键入,则将在搜索结果中获得该选项,但是选择该选项后,您必须键入AB ..以此类推才能得到结果。

  • 我发现对于较大的数据集,选择似乎比select2更快,尤其是在IE中。

Select2支持移动设备,而Chosen专门在iPod,iPhone和移动Android上禁用自身如果您想在移动设备上使用“扩展”选择框,则可以轻松进行选择。

我对Select2的体验在台式机上非常出色,但在触摸式移动设备上却千差万别,总是存在一些怪癖。例如,在具有ics和股票浏览器的xperia st15i上,由于键盘窃取了焦点,下拉菜单始终处于关闭状态。再次将其打开的唯一方法是触摸菜单数十次,用手指按住一秒钟以及其他伏都教具。还是要在下拉列表关闭时开始输入,有多少用户会发现这一点?

Selectize.js似乎比选择二顺利得多,但在选择或inputed它移动页面一路向左由于某种原因,价值它也有自身的移动的例如问题。另外,在不支持溢出的较旧的Android 2.x设备上,由于键盘不会弹出,因此无法选择几个最上面的选项。:(

仍然必须测试选择的选项,毕竟禁用移动设备可能不是一个坏主意,但最终,良好的旧下拉列表将始终在所有地方起作用。

更新:现在我也测试了选择,并且在一个方面也更好:默认情况下,它在移动设备上不起作用(很棒!),但是它具有过滤单词的问题。例如,不会在单词的中间进行搜索,并且如果您使用&nbsp hack进行匹配,它也会忽略完整的选项。回到绘图板。

为什么我选择select2而不是选择

select2的主要功能(没有其他控件会自动魔术化)是“清除所有”选择,并且控件的右侧带有“ x”。这是我的应用程序的杀手级功能。我不知道为什么其他选择标记增强库缺少此功能。

Select2不支持AJAX选择

选择2的大小比选择的小。

我之所以选择Select2,是因为没有官方支持Ajax操作。

本文地址:http://javascript.askforanswer.com/xuanzehexuanze2youshenmequbie.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!