HTML/JS 检查外部异步文件生成

Posted

技术标签:

【中文标题】HTML/JS 检查外部异步文件生成【英文标题】:HTML/JS Check for external async file generation 【发布时间】:2019-01-03 06:03:06 【问题描述】:

我想在 html/js 应用程序中显示由第三方应用程序生成的 svg。我遇到的问题是 svg 生成是异步的,当 HTML 尝试加载 svg 时,文件可能丢失(当时未写入)或不完整(正在写入)。 我查看了 Promise,但无法获得任何检查外部文件可用性的示例。 有什么想法吗?

【问题讨论】:

到目前为止,您(确切地)如何访问该文件? 我从 html 调用外部命令。完成后,我通过 JQuery 使用外部 svg url 更新 img src 属性。我需要设置一个时间间隔以确保外部文件正常。 【参考方案1】:

由于您在 cmets 中提到,您可以通过外部 url 访问 svg:

你可以用 javascript/Jquery 检查外部文件是否存在(只要你可以通过 http 访问)

因此,您可以进行这样的检查。如果找到文件,则更新图像 src,如果没有,请稍后重试:

这是一个小例子:

//example retry delay of 3 seconds
var delay = 3000;
var url = "http://www.doma.in/path/yourimg.svg";

function tryUpdate()
    $.get(url)
        .done(function()  
            //your picture exists
            updateImgSrc();
        ).fail(function()  
            // picture doesn't exist yet -> retry after time
            setTimeout(tryUpdate, delay);
        )

【讨论】:

以上是关于HTML/JS 检查外部异步文件生成的主要内容,如果未能解决你的问题,请参考以下文章

PHP/HTML/JS:外部文件管理器[关闭]

将外部 HTML 加载到页面中,包括 Javascript 并在加载时启动 JS

JS异步那些事 四(HTML 5 Web Workers)

Html5 js FileReader接口(艺博会,添加商品时,上传图片,addGoods.html页)

html5 js 问题

动态生成的HTML标签样式问题