如何延迟加载尚未在JavaFX WebView中下载的图像?

时间:2019-04-01 22:59:51

标签: javascript java html javafx javafx-11

我正在制作一个使用JavaFX WebView来显示电子邮件HTML文件的电子邮件客户端。为了快速响应,我希望在本地下载电子邮件时显示嵌入式图像。我查找了执行此操作的选项,并遇到了延迟加载的概念。到目前为止,我已经找到并尝试实现此script

<script>
window.addEventListener('load', function(){
    var allimages= document.getElementsByTagName('img');
    for (var i=0; i<allimages.length; i++) {
        if (allimages[i].getAttribute('data-src')) {
            allimages[i].setAttribute('src', allimages[i].getAttribute('data-src'));
        }
    }
}, false)
</script>

我将遍历文件,将 src 更改为假名,并从每个 img 元素添加/替换 data-src 设置为正确的路径/名称,最后将脚本附加到 body 元素的末尾。

从基础知识开始,我对HTML还是很陌生,而JS并不是显示错误日志的一种,所以我不确定自己在做什么错。我的猜测是,脚本 可以正常工作,但是在从在线src流式传输图像时效果最佳。我的情况是,直到将HTML加载到视图中的某个时间后,文件甚至不存在于某个位置。

如果无法实现,我知道我可以通过Java对WebView进行编码,以在每次图像下载完成时重新加载。我只是希望为用户找到一些更优雅/可能更少的刺激。

1 个答案:

答案 0 :(得分:0)

我找到了一个解决方案并将其发布到here

事实证明,延迟加载不是我想要的。延迟加载只是稍后加载图像,以便可以显示页面。我的问题是处理加载失败,而延迟加载是无法解决的。我会将其标记为重复项,但是我将不编辑此问题的标题,以便其他人更有机会找到它。