【问题标题】:Why is the upload button shown so slowly?为什么上传按钮显示这么慢?
【发布时间】:2012-01-20 06:23:28
【问题描述】:

我正在处理一个现有项目。我使用 jQuery Uploadify 插件来上传文件。以下按钮代码用于上传文件:

<div>
     <input width="167" type="file" height="47" name="file_upload" class="file_upload" id="file_upload" style="display: none;">
     <object width="167" height="47" type="application/x-shockwave-flash" data="/uploadify/uploadify.swf" id="file_uploadUploader" style="visibility: visible;"><param name="quality" value="high">
         <param name="wmode" value="transparent">
         <param name="allowScriptAccess" value="sameDomain">
         <param name="flashvars" value="uploadifyID=file_upload&amp;pagepath=/en/media-maker/&amp;script=/en/media-maker/upload/file&amp;folder=&amp;scriptData=level%3D1%26folderid%3D15%26symfony%3Dbtt461h1nor36k2taotp6jhku4&amp;width=167&amp;height=47&amp;wmode=transparent&amp;method=POST&amp;queueSizeLimit=20&amp;simUploadLimit=1&amp;hideButton=true&amp;fileDesc=Image / Video / Audio&amp;fileExt=*.jpg;*.jpeg;*.gif;*.png;*.bmp;*.svg;*.avi;*.divx;*.dvx;*.dv;*.asf;*.asx;*.3gp;*.3g2;*.3ivx;*.3vx;*.mov;*.mp4;*.m4v;*.mpg;*.mpeg;*.qt;*.rm;*.swf;*.wmv;*.mkv;*.mts;*.part;*.mp3;&amp;multi=true&amp;auto=true&amp;sizeLimit=524288000&amp;fileDataName=Filedata&amp;queueID=uploadList">
     </object>
</div>

我的问题是当我刷新网页时这个按钮出现得很晚。此按钮仅在整个页面上传后出现。有时此按钮不会出现在某些浏览器上并且互联网连接速度较慢。如何让它看起来更快?

谢谢

【问题讨论】:

    标签: php jquery html file-upload uploadify


    【解决方案1】:

    首先,您为什么要为此使用闪存?杀死 flash 并执行纯 jQuery-PHP AJAX 实现并使用图像使按钮看起来很漂亮。 Flash 确实应该仅限于视频播放器,甚至 HTML5 也将很快不再是这种情况。

    我刚刚查找了uploadify,您绝对应该选择不同的工具 不惜一切代价避免使用Flash。我已经专业从事网络开发 5 年了,如果包括我第一次将它作为一种爱好来玩的话,还有 10 年。我可以从个人经验告诉你,当涉及到 flash 时,请说不。

    下面我列出了我在另一个 StackOverflow 答案 (http://stackoverflow.com/questions/4072889/uploadify-alternative-need-to-upload-large-1gb-files) 中找到的替代方案列表。从我所见,我认为“Plupload”和“jQuery AJAX 文件上传”看起来不错。

    【讨论】:

    • 我可能应该提到,flash 和 js 都是大多数浏览器最后加载的东西。如果您为按钮放置一个图像并为其分配适当的 JS,那么它看起来和工作都很好。
    • $flash = function($myPage) { return "flash + $mypage == awful"; }
    • 使用闪存的原因是为了提供某些客户端功能,例如最大文件大小验证、文件类型检查、进度/速度状态等。闪存是邪恶的并不是新闻。 2008 年的替代品并不多。
    • Flash 不是这些事情的原因。您可以使用 JavaScript 和 PHP 完成所有这些事情。对于进度,您通常仍然需要一个可以报告进度的服务器端插件。有一个简单的 php PECL 插件,JavaScript 也可以与之交互。虽然 flash 并不邪恶(我从未说过),但它是一种资源消耗,一个必须在两端堵住的安全漏洞,而且无论如何在移动世界中不受支持。
    【解决方案2】:

    如果 &lt;object&gt; 是您的按钮,并且它是某种 .swf 闪存文件......那么浏览器在从 /uploadify/uploadify.swf 下载整个内容之前无法显示它......更不用说它必须启动 flash 插件只是为了呈现一个简单的按钮。这就是为什么它很慢。

    当 CSS 已经被如此多的浏览器很好地支持时,我不能说我会提倡使用 Flash 文件作为按钮。我可能会说这完全是荒谬的。

    【讨论】:

      猜你喜欢
      • 2012-12-26
      • 1970-01-01
      • 2011-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      相关资源
      最近更新 更多