Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以从HTML5应用缓存加载网络资源吗?_Html_Html5 Appcache - Fatal编程技术网

我可以从HTML5应用缓存加载网络资源吗?

我可以从HTML5应用缓存加载网络资源吗?,html,html5-appcache,Html,Html5 Appcache,我能够很好地缓存本地文件(图像、js等) 理想情况下,我希望能够指向远程资源,例如存储在Azure上blob存储中的.mp4,并缓存该资源。可能吗 我没有在我的日志中看到任何错误,但我也没有看到它正在下载,因为它在Chrome->Resources面板下的应用缓存中不可用 我的舱单: CACHE MANIFEST # Init 11-24-15 index.html ### Images img/Night-Trap-32x-Front.jpg /img/icons/Bathroom.jpg

我能够很好地缓存本地文件(图像、js等)

理想情况下,我希望能够指向远程资源,例如存储在Azure上blob存储中的.mp4,并缓存该资源。可能吗

我没有在我的日志中看到任何错误,但我也没有看到它正在下载,因为它在Chrome->Resources面板下的应用缓存中不可用

我的舱单:

CACHE MANIFEST
# Init 11-24-15
index.html

### Images
img/Night-Trap-32x-Front.jpg
/img/icons/Bathroom.jpg
/img/icons/Bedroom.jpg
/img/icons/Driveway.jpg
/img/icons/Entry-Way.jpg
/img/icons/Hall-1.jpg
/img/icons/Hall-2.jpg
/img/icons/Kitchen.jpg
/img/icons/Living-Room.jpg
/img/icons/trap-icon.gif

img//stills/BATHROOM_1.jpg
img//stills/BEDROOM_1.jpg
img/stills/DRIVEWAY_1.jpg
img/stills/ENTRY-WAY_1.jpg
img/stills/HALL-ONE_1.jpg
img/stills/HALL-TWO_1.jpg
img/stills/KITCHEN_1.jpg
img/stills/LIVING-ROOM_1.jpg

### JS
js/vendor/bootstrap.min.js
bower_components/video.js/dist/video.js
js/vendor/mainloop/mainloop.js
bower_components/object.observe/dist/object-observe-lite.min.js
js/appCacheValidation.js


 # THESE DO NOT SEEM TO BE CACHED
 https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/00000021.mp4
 https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/00130422.mp4
 https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/01152221.mp4
 https://nighttrapblob.blob.core.windows.net/ntvids/hallOne/02500221.mp4           
 https://nighttrapblob.blob.core.windows.net/ntvids/bedroom/00000081.mp4

NETWORK:
*
这就是我如何记录正在发生的事情:

// App cache validation
var appCache = window.applicationCache;

if (appCache === null || undefined) {
    console.log("App cache does not exist");
}

appCache.addEventListener('checking', function(event) {
    console.log("Checking for updates.");
}, false);

appCache.addEventListener('error', function(event) {
    if (navigator.onLine === true) { //If the user is connected to the internet.
        //alert("Error - Please contact the website administrator if this problem consists.");
        console.log("Error - Please contact the website administrator if this problem consists.");
    } else {
        //alert("You aren't connected to the internet. Some things might not be available.");
        console.log("You aren't connected to the internet. Some things might not be available.");
    }
}, false);

appCache.addEventListener('downloading', function(event) {
    console.log("Started Download.");
}, false);


appCache.addEventListener('progress', function(event) {
    console.log(event.loaded + " of " + event.total + " downloaded.");
}, false);

appCache.addEventListener('cached', function(event) {
    console.log("Cached assets -- Done.");
}, false);

appCache.addEventListener('updateready', function() {
    console.log("New resources are available for download -- update ready");
}, false );

appCache.addEventListener('obsolete', function(event) {
    console.log("Obsolete - no resources are cached, and previous cache(s) are now deleted.");
}, false);

我解决了。花了一点时间四处打猎,但你看:

您可以通过类似web作业的方式将缓存控制应用于容器中的所有Blob。有一个很好的例子说明了如何做到这一点,包括两个步骤:

  • 从同一数据中心中的工作人员角色运行操作。Azure服务之间的速度非常快,只要它们位于同一个关联组中。此外,没有数据传输成本
  • 并行运行该操作。NETV4中的任务并行库(TPL)使这非常容易。下面是为容器中的每个blob并行设置缓存控制头的代码。 此外,您可以使用CloudBerry Explorer之类的工具,它支持缓存控制
  • 我只想在少数几个视频上测试一下,以确保自己在创建脚本时的安全,所以在这里一步一个脚印。我只是简单地登录到我的Azure门户,进入我正在服务的.mp4s的blob存储容器,并对它们进行单独编辑。我单击每个视频,编辑属性,然后设置“缓存控制”属性的值。(例如,public,max age=300000),其中max age指定表示将被视为新的最长时间

    在他的博客上对缓存控制可用的不同属性有一个很好的概述