代码之家  ›  专栏  ›  技术社区  ›  newOne

FileDownloader-不同的行为取决于浏览器

  •  0
  • newOne  · 技术社区  · 6 年前

    一开始,我试图描述背景。我有一个按钮,点击返回相关日期的数据文件。当点击按钮时,我向数据库进行查询(日期从到),并将数据解析为适当的格式,然后返回为 StreamResource FileDownloader . 所有课程均来自 Vaadin 包装。

        Button btExport = new Button("Export");
        FileDownloader fileDownloader = new FileDownloader(getReportsStream());
        fileDownloader.extend(btExport);
        //update resource to download on click 
        btExport.addClickListener(event -> {
            fileDownloader.setFileDownloadResource(getReportsStream());
        });
    

    在Chrome和IE浏览器中都可以正常工作。在Mozilla中Firefox不是。在Firefox浏览器中,始终返回旧的 StreamResource公司 对象总是返回同一个文件,这看起来像是Firefox从缓存中获取的,因为在日志中,我没有找到Firefox的事件,没有任何操作。在Chrome和IE中存在日志。

    所有浏览器都是最新的。 版本:7.7.6

    你知道为什么会这样吗?或者,我可以用不同的方式来实现下载文件吗?

    编辑///

    我找到了解决办法,但我不知道这是否是暂时的。重新安装浏览器后,这种奇怪的行为不再发生。如果它在几天内运行良好,我将把它作为解决方案。

    1 回复  |  直到 6 年前
        1
  •  0
  •   newOne    6 年前

    首先我在Firefox 49上测试,在我安装Firefox 57之后,没有任何变化。只有当我清理缓存并保留每个缓存时,它看起来才工作。我在另一台电脑上检查,在版本57上工作,在版本49上没有工作。

    结论是要有最新的浏览器,一定要卸载旧版本的浏览器并进行清理。