在浏览器中开始下载的首选方法

时间:2010-11-17 17:17:35

标签: html

我们目前正在使用元刷新来启动页面上的下载,我在维基百科上读到,使用它并不是用户体验(用户体验)友好。那么在登陆下载页面几秒钟后开始下载的方式是什么。

3 个答案:

答案 0 :(得分:1)

用户界面友好的方式:

  1. 不会给用户带来突然意外的惊喜。所以推迟下载X秒并清楚地宣布。

    这是通过设置JavaScript逻辑来显示下载的更改倒计时来完成的。有关实施的详细信息,请参见下文。

  2. 允许用户通过允许立即下载来控制它

    这是通过让下载计时器公告提供立即下载的小部件(按钮或链接)来完成的。

  3. 通过在新窗口/标签页中打开下载来保留当前页面。

    “开始下载”逻辑最好是 - 而不是明显的window.location.href设置 - 这会打开下载的新窗口。这样,您就可以让用户保持主下载登录页面的完整。

  4. 如果可能,请提供一个漂亮的下载小部件

    不要只推送下载目标的网址,而应考虑使用自定义下载功能,例如jQuery的jDownload plugin


  5. 要实现更改倒计时,请执行以下操作:

    • 设置一个变量,直到下载开始的时间:

      var DownloadIn = 10;

    • 使用setTimeout()`:

      在JavaScript中设置计时器

      setTimeout("shouldWeDownload()", DownloadIn * 1000);

    • 从计时器调用的子程序shouldWeDownload()将:

      • 检查时间段(存储在DownloadIn变量中)是否大于零。

      • 如果时间不是(大于零),它将:

        一个。检查特殊的“AlreadyDownloading”变量是否设置为true - 稍后将解释此变量。如果为true,只需退出。

        湾打印到页面上的特殊DIV - 用户非常明显且可见 - 消息“在开始下载之前需要XXX秒。点击this link开始下载”。

        ℃。减少DownloadIn变量

        d。使用相同的setTimeout

      • 重新设置计时器
      • 如果时间到了,请开始下载。

    • 此外,邮件中的“此链接”链接也会立即启动下载。为了使事情变得干净,onClick JS handler的“立即下载”应该设置一个特殊的“AlreadyDownloading”变量,在上面的逻辑中检查应该设置为true,所以我们不会因为次要的竞争条件而开始第二次下载。 / p>

答案 1 :(得分:1)

我不知道有关用户期望的任何研究,但我建议您在初始下载链接中进行下载,例如

<a href="kiss_from_a_rose__dubstep_remix.mp3">Download my awesome track</a>

(也许是像大按钮一样链接的风格,甚至可能是指向下方的箭头:例如something like this。)

然后将服务器设置为返回该文件,并将the Content-disposition header设置为“附件”和文件名,以便浏览器立即让用户知道他们正在下载内容:

Content-disposition: attachment; filename=kiss_from_a_rose__dubstep_remix.mp3

这样您就不会打开新页面来进行文件下载。文件下载,用户仍然在下载时的页面上,大家都很高兴。

  • 更少的步骤=让用户感到困惑的事情更少。

  • 使用浏览器的UI =用户之前有更多机会看到它,从而知道发生了什么

答案 2 :(得分:-1)

unix 用户友好吗?完全取决于浏览器,上次我检查,大多数/所有Linux浏览器和safari与元刷新工作正常。

这就是为什么大多数网站都提供带有下载链接的元刷新的原因。