1

我正在尝试使用 phonegap 和 jquery 来执行以下操作。使用 $.ajax() 加载图像,将其存储在 localStorage 中,并在 html 页面中显示。

$.ajax({
 type: 'GET',
 url: uri,
 success: function(data, textStatus, jqXHR) {
  if (textStatus === "notmodified") {
    console.log("NOT modified.");
  } else {
    console.log("download complete. Total Bytes: " + data.length);
    window.localStorage.setItem(fileName,btoa(encodeURIComponent(data)));
  }
 }
})

然后稍后:

$('#info img').each( function() {
 var fileName = this.src;
 var pos = fileName.lastIndexOf('/');

 if(pos >= 0)
  fileName = fileName.substring(pos + 1);

 //Check for image
 var pos = fileName.lastIndexOf('.');
 var ext;
 if(pos >= 0)
   ext = fileName.substring(pos + 1);

 if(fileName in filesSynchronized)
  this.src = 'data:image/' + ext +';base64,' + window.localStorage[fileName];

但图像已损坏。我究竟做错了什么?ajax 不返回图像的字节数组吗?btoa 不能正常工作吗?

4

1 回答 1

0

回答您问题的一种方法 - 从 中获取base64编码图像localStorage,对其进行解码并将其与您发送到浏览器的源文件进行比较。

如果它们不相同,那么您至少有一个问题的答案是肯定的。

于 2013-07-04T23:07:57.170 回答