【问题标题】:Image not updating when read from metro application's local folder从 Metro 应用程序的本地文件夹读取时图像未更新
【发布时间】:2013-11-02 02:19:36
【问题描述】:

我正在使用 Html/WinJS 开发的 Metro 应用程序中显示应用程序本地文件夹中的图像。

 app.onactivated = function (args) {
 document.getElementById('img').src = "ms-appdata:///local/test.jpg";
}

我正在做的是在其他应用程序中编辑图像并在单击按钮时重新加载它

function update() {
document.getElementById('img').src = "ms-appdata:///local/test.jpg";
}

但是图片没有更新。只有在应用重新启动后才会更新。

“ms-appdata:///local/”是否仅在应用重新启动时缓存数据并刷新? 或者我哪里出错了,请提出建议。

谢谢。

【问题讨论】:

    标签: html microsoft-metro winjs windows-8.1


    【解决方案1】:

    我相信将 img.src 设置为与以前相同的值不会触发重新加载,并且渲染引擎不会根据文件更改自动更新图像。您可以尝试的一个技巧是在 URI 上附加一个 ?foo= 参数,每次递增以有效地更改 URI 并触发重新加载。

    或者,使用StorageFile.getFileFromApplicationUriAsync(new Windows.Foundation.Uri()) 打开文件。然后您可以将 StorageFile 传递给 URL.createObjectURL,并将结果分配给 img.src。这应该会完全刷新图像。

    请注意,对于不需要加载所有像素(如编辑时那样)的消费目的,最好从 StorageFile.getThumbnailAsync(或 Windows 8.1 上的getScaledImageAsThumbnailAsync)获取缩略图并将其传递结果改为 URL.createObjectURL。这将避免加载整个图像,尤其是对于较小的显示尺寸,从而降低内存开销并提高性能。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-15
      • 2018-06-02
      • 1970-01-01
      • 2012-05-27
      • 2012-12-24
      • 2020-06-13
      • 1970-01-01
      • 2021-07-25
      相关资源
      最近更新 更多