我们有一个包含框架集的主页。这有 2 帧(帧 a 和帧 b)。使用应用程序缓存 (HTML5) 我们缓存主页面和框架 a。框架 b 是一个像任何网页一样被检索的页面。
现在我们发现,当一个页面被缓存时,它不能做 web 请求。因此框架 a 不能使用 web 请求收集数据,框架 b 可以。(只是一个普通的 $.get 或 $.post 使用 jQuery)。
随着 Frameset 在 HTML5 规范中过时,我们正在寻找一种不同的方法来设置它。所以我们归结为 iframe 标签。尽管它是在 iframe 中设置的,但情况仍然相同。
现在我们遇到的问题是,每当在 iframe 中加载单个页面时,没有 iframe 可以发出 Web 请求。
设置:
主页:
<!DOCTYPE html>
<html manifest="CacheManifest3.ashx">
<head>
<title>Testpage for frames</title>
</head>
<body>
<iframe height="200px" width="200px" style="position: relative; background: blue;" src="frame_c.html" ></iframe>
<iframe height="200px" width="200px" style="position: relative; background: Yellow;" src="frame_d.html" ></iframe>
</body>
</html>
框架 a 和 b(唯一的区别是 a 和 b):
<script src="Scripts/jquery-1.7.1.js" type="text/javascript"></script>
<p>Frame a</p>
<script>
function doclick()
{
$.post( "WebServices/SiteWebService.asmx/Test", null, function ( data )
{
alert( 'Done! ' + data );
} );
}
</script>
<button onclick="doclick();">Click for webrequest</button>
<button onclick="alert( 'Alert!' );">Click for alert</button>
缓存清单:
CACHE MANIFEST
#v1
CACHE:
Frametest2.html
frame_a.html
现在,归结为一个问题:是否可以至少保留 1 个从 Internet 加载的 iframe,而其他 iframe 被缓存,那么仍然可以从该单个 iframe 发出网络请求?
我们希望这样可以确保应用程序将尽可能实时的信息反馈给母公司,而应用程序是从智能手机和/或平板电脑运行的,这可能会被带到尴尬的地方。(地窖、房屋下、大桥或任何其他可能干扰信号的地方)当信号丢失并稍后恢复时,我们希望将信息发回,而无需用户操作。在这样的场景下,我们认为我们可以让它发挥作用。
编辑:更新以删除沙盒属性的测试参数。