【问题标题】:Cordova application to reload image (SVG)用于重新加载图像 (SVG) 的 Cordova 应用程序
【发布时间】:2014-10-13 19:13:02
【问题描述】:

我正在使用 cordova android 应用程序,我想自动重新加载 SVG 图像,而该应用程序的其他活动不受影响。我已经尝试过这段代码,但它并不令人耳目一新。请指导我。

这是我要在 1 秒后自动刷新的图像源

<img src="https://api-m2x.att.com/v1/charts/f9dfbcdeebe88fb1c3899716ae6949ae.svg?width=600&height=450">

这是我正在尝试的代码:

<!DOCTYPE html>
<html>
<head>
  <title>Accelerometer Graph</title>
</head>
<body>
  <img src="https://api-m2x.att.com/v1/charts/f9dfbcdeebe88fb1c3899716ae6949ae.svg?width=600&height=450">
  <script>
  setInterval(function() {
      var images = document.images;
      for (var i=0; i<images.length; i++) {
          images[i].src = images[i].src.replace(/\btime=[^&]*/, 'time=' + new Date().getTime());
      }
  }, 1000); // 1000 milliseconds = 1 seconds
  </script>
</body>
</html>

请推荐

【问题讨论】:

  • 看起来不错 - 尽管我会以不同的方式获取 Image 元素。当您使用远程调试进行测试时,您在控制台中看到了什么?你看到错误了吗?您是否尝试添加一个 console.log 以确保您的 setInterval 确实在运行。
  • 我没有加consol,我在app里试了,没有刷新SVG

标签: javascript android html cordova svg


【解决方案1】:

好的,我明白了。您根据时间更新图像的代码无法更改,因为您的原始 URL 不包含 time=。因此,replace 什么都不做,URL 也不会改变。

【讨论】:

  • 作为一个快速修复,我在 URL 中添加了 &time=1 并且它有所帮助。但请注意,每 1000 秒运行一次太快了。图像永远不会完成下载。
  • 我试了 10 秒,还是不行。不知道为什么它没有改变:(
  • 当我在桌面上进行测试时(你实际上并没有做任何需要 Cordova 的事情),我可以确认它每 N 秒发出一次网络请求。你确定图像应该改变吗?我刚刚测试了图像,它看起来与我今天早上看到的相似。我也重新加载了几次。
  • 图像现在不会改变,因为我停止了数据流,所以数据点没有改变。因此你没有得到任何东西。但是当我改变时,我看不到改变。而cordova和svg图片无关,但我必须在cordova平台做。
  • 你能重新打开流吗? :) 我很确定我的改变是好的。这是我的整个测试脚本。你可以在桌面上运行它。无需使用 Cordova 来运行它。 gist.github.com/cfjedimaster/b1f5f4c80811b59778c5
猜你喜欢
  • 1970-01-01
  • 2016-10-05
  • 2018-12-20
  • 1970-01-01
  • 1970-01-01
  • 2014-08-07
  • 2015-04-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多