我们的情况:
我们有一个包含框架集的主页面。这有2帧(帧a和帧b)。使用应用程序缓存(HTML5),我们缓存主页面和框架a。框架b是一个像任何网页一样被检索的页面。
现在我们发现,当页面被缓存时,它无法进行Web请求。因此,帧a不能使用web请求收集数据,帧b可以。 (使用jQuery只是一个普通的$ .get或$ .post。)
随着使用HTML5规范,Frameset已经过时,我们正在寻找一种不同的方式来设置它。所以我们来到iframe标签。情况仍然是相同的,尽管它是在iframe中设置的。
现在我们遇到的问题是,只要在iframe中加载的单个网页,没有iframe就可以发出网络请求。
设置:
主页:
<!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个从互联网上加载的iframe而其他iframe被缓存,那么,是否仍然可以从该单个iframe发出webrequests?
我们希望这能确保应用程序尽可能将实时信息提供给母公司,同时应用程序从智能手机和/或平板电脑运行,可能会被带入危险的地方。 (酒窖,房屋,大桥或任何其他可能干扰信号的地方)当信号丢失并稍后恢复时,我们希望在没有用户操作的情况下发回信息。有了这样的场景,我们认为我们可以让它发挥作用。
编辑:已更新以删除Sandbox属性的测试参数。