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

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


<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>

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


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


如果这无法实现,我知道我可以通过Java编写WebView代码,以便在每次映像完成下载时重新加载。我只是希望找到一些更优雅/可能不那么刺耳的东西。


皈依舞
浏览 67回答 1
1回答

幕布斯6054654

我找到了一个解决方案,并已将其发布在这里。事实证明,延迟加载不是我想要的。延迟加载只是稍后加载图像,以便页面可以显示。我的问题是处理加载失败,这是延迟加载无法解释的。我会将其标记为重复,但我会将此问题的标题保留为未编辑,以便其他人有更好的机会找到它。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java