Javascript 为什么YUI上传程序在选择文件后返回所有排队的文件?

Javascript 为什么YUI上传程序在选择文件后返回所有排队的文件?,javascript,user-interface,yui,Javascript,User Interface,Yui,不确定大家是否熟悉,但在单击“浏览”并选择一组文件后,回调事件将返回队列中所有文件的列表,而不仅仅是您刚刚完成选择的文件。这带来了一点问题,因为现在不只是将选定的文件添加到UI中,您必须清除列表并重新添加所有文件。您甚至无法计算现有文件和所有文件之间的差异,因为它们的文件id也是随机更改的,就像队列中文件的顺序一样。这会减慢用户界面的速度,因为它必须重新添加已经存在的内容,并且会让用户感到困惑,因为他们所有的内容都是随机重新排序的。人们是如何处理的?按照文件名对文件进行排序以保持某种一致性是合乎

不确定大家是否熟悉,但在单击“浏览”并选择一组文件后,回调事件将返回队列中所有文件的列表,而不仅仅是您刚刚完成选择的文件。这带来了一点问题,因为现在不只是将选定的文件添加到UI中,您必须清除列表并重新添加所有文件。您甚至无法计算现有文件和所有文件之间的差异,因为它们的文件id也是随机更改的,就像队列中文件的顺序一样。这会减慢用户界面的速度,因为它必须重新添加已经存在的内容,并且会让用户感到困惑,因为他们所有的内容都是随机重新排序的。人们是如何处理的?按照文件名对文件进行排序以保持某种一致性是合乎逻辑的(即使添加到末尾会更合乎逻辑),还是有人设计了一些复杂的解决方案来确定在上一次操作中实际选择了哪些文件?

我使用yahoo uploader,但不完全理解您的意思,您可以按照您想要的方式对文件进行排序,每次用户选择一个文件时,您可以使用javascript在div、span或您正在使用的任何内容的顶部插入该文件,例如,您可以做些什么来避免用户选择相同的文件,您可以将event.fileList.filenumber保存在数组中,并在每次onselect事件发生时进行比较。

在当前版本的YUI中,将文件添加到event.fileList中,并使用前进的ID将其顺序更改到列表的末尾。看看他们的多文件上传示例。如果您从队列的开头删除一些文件,它甚至会继续编号顺序。

可以使用“Uploader.clearFileList”和“Uploader.removeFile”管理YUI上载程序文件队列。您可以使用这些函数来帮助管理队列。

+1 IIRC,我按文件名对当时正在做的事情进行排序,然后继续。这是我想再看一眼的东西。我想我只是想用uploadify。。。我正在使用jquery.fileNuber?我猜你的意思是“数字”。。。这是唯一的,还是当你尝试上传同一个文件两次时会改变?将一个列表中的每个数字与另一个列表中的每个数字进行比较很慢。是的,你可以在任何地方插入文件,但是如果你重新添加整个列表,它们会被随机洗牌。除非你过滤掉重复的部分并添加剩余部分,否则你最终会陷入混乱。这不是你真正能做的。是下一个。。我将yui上载与原型一起使用,因此,我声明了一个var ht=new HashTable();考虑到这一点,您可以在哈希表中插入数字ID作为键,然后您可以提取其中的所有信息(我2年前就这样做了),因此基本上通过这种方式,您可以知道文件是否已上载。。。我想在Jquery或其他语言中,您可以使用类似的方法。。自从我发布后,best nahumI找到了另一个解决方案,但我相信你的话,他们已经解决了YUI。很高兴知道!