我正在构建一个使用Google Doubleclick广告的HTML5应用。 99%的应用程序是使用JS动态构建的,但广告被硬编码到html中,如下所示:
<script type='text/javascript' src='http://partner.googleadservices.com/gampad/google_service.js'></script>
<script type='text/javascript'>
GS_googleAddAdSenseService("ca-pub-3664602748600160");
GS_googleEnableAllServices();
GA_googleAddSlot("ca-pub-3664602748600160", "125x125");
GA_googleAddSlot("ca-pub-3664602748600160", "250x250");
GA_googleAddSlot("ca-pub-3664602748600160", "160x600");
GA_googleAddSlot("ca-pub-3664602748600160", "468x60");
GA_googleFetchAds();
</script>
<div id="ads" style="float:right;">
<div id="square" style="visibility:hidden">
<div>
<script type='text/javascript'>
GA_googleFillSlot("250x250");
</script>
</div>
</div>
<div id="small_square" style="visibility:hidden">
<div>
<script type='text/javascript'>
GA_googleFillSlot("125x125");
</script>
</div>
</div>
<div id="tall_banner" style="visibility:hidden">
<div>
<script type='text/javascript'>
GA_googleFillSlot("160x600");
</script>
</div>
</div>
<div id="half_banner" style="visibility:hidden">
<div>
<script type='text/javascript'>
GA_googleFillSlot("468x60");
</script>
</div>
</div>
然后根据需要隐藏/移动这些广告,以填充生成的网页上的各种广告位。当我实现清单持久资产的清单文件时,我收到一条消息,说明它无法加载http://partner.googleadservices.com/gampad/google_service.js文件。知道了这一点,我尝试保存该js文件的本地副本并将其包含在清单中,但是这导致了GA_googleblahlah调用未定义的错误,这似乎表明某种加载顺序问题。有没有办法从缓存中免除此文件?
答案 0 :(得分:2)
我找到了解决方案。在定义缓存的元素之后在网络区域中使用通配符似乎已经解决了这个问题。我的清单文件现在看起来像这样:
CACHE MANIFEST
CACHE:
/js/jquery.min.js
/js/jquery.easing.1.3.js
/etc
NETWORK:
*
感谢Ben Poole的指示。
答案 1 :(得分:0)
如果您不希望文件缓存,请将其添加到清单文件的NETWORK:
部分。来自Dive Into HTML5:
标记为NETWORK的行是“在线白名单”的开头 部分。本节中的资源从不缓存,也不会缓存 可离线使用。 (将导致在离线时尝试加载它们 在一个错误。)