精华内容
下载资源
问答
  • HTML5 应用程序缓存

    千次阅读 2016-06-28 20:32:22
    1、HTML5 应用程序缓存  使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。 2、什么是应用程序缓存(Application Cache)?  HTML5 引入了应用程序缓存,这意味着 web 应用可进行...

    1、HTML5 应用程序缓存

      使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本。

    2、什么是应用程序缓存(Application Cache)?

      HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接时进行访问。应用程序缓存为应用带来三个优势:

       离线浏览 - 用户可在应用离线时使用它们

       速度 - 已缓存资源加载得更快

       减少服务器负载 - 浏览器将只从服务器下载更新过或更改过的资源。

    3、HTML5 Cache Manifest 实例

    下面的例子展示了带有 cache manifest 的 HTML 文档(供离线浏览):

    <!DOCTYPE html>
    <html manifest="demo_html.appcache">
    <meta charset="UTF-8">
    <body>
    <script src="demo_time.js">
    </script>
    <p id="timePara"><button οnclick="getDateTime()">获取日期和时间</button></p>
    <p><img src="logo.png" width="336" height="69"></p>
    <p>尝试打开 <a href="tryhtml5_html_manifest.htm" target="_blank">这个页面</a>, 在离线的状态下重新载入这个页面,页面也可以访问。</p>
    </body>
    </html>

    4、Cache Manifest 基础

      如需启用应用程序缓存,请在文档的<html> 标签中包含 manifest 属性:

    <!DOCTYPE HTML>
    <html manifest="demo.appcache">
    ...
    </html>

      每个指定了 manifest 的页面在用户对其访问时都会被缓存。如果未指定 manifest 属性,则页面不会被缓存(除非在 manifest 文件中直接指定了该页面)。manifest 文件的建议的文件扩展名是:".appcache"。请注意,manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置。

    5、Manifest 文件

      manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。

      manifest 文件可分为三个部分:

        CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存

        NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存

        FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

    6、CACHE MANIFEST

      第一行,CACHE MANIFEST,是必需的:CACHE MANIFEST

        /theme.css

        /logo.gif

        /main.js

      上面的 manifest 文件列出了三个资源:一个 CSS 文件,一个 GIF 图像,以及一个 JavaScript 文件。当 manifest 文件加载后,浏览器会从网站的根目录下载这三个文件。然后,无论用户何时与因特网断开连接,这些资源依然是可用的。

    7、NETWORK

      下面的 NETWORK 小节规定文件 "login.php" 永远不会被缓存,且离线时是不可用的:

         NETWORK:login.php

      可以使用星号来指示所有其他其他资源/文件都需要因特网连接:

         NETWORK:*

    8、FALLBACK

      下面的 FALLBACK 小节规定如果无法建立因特网连接,则用 "offline.html" 替代 /html5/ 目录中的所有文件:

       FALLBACK:

       /html/ /offline.html

      注意: 第一个 URI 是资源,第二个是替补。

    9、更新缓存

      一旦应用被缓存,它就会保持缓存直到发生下列情况:

       (1)、用户清空浏览器缓存

       (2)、manifest 文件被修改(参阅下面的提示)

       (3)、由程序来更新应用缓存

    10、实例 - 完整的 Manifest 文件

    main.html

    <!DOCTYPE HTML>
    <html manifest="../demo.appcache">
    ...
    </html>

    demo.appcahe

    CACHE MANIFEST
    CACHE:
    # 2016-12-06 v0.7.665
    /chargepaltest/layer/layer.js
    /chargepaltest/layer/skin/layer.css
    /chargepaltest/js/jquery-3.1.1.min.js
    /chargepaltest/js/qwebchannel.js
    /chargepaltest/js/public.js
    /chargepaltest/css/common.css
    /chargepaltest/bootstrap/css/bootstrap.min.css
    /chargepaltest/images/bg.png
    /chargepaltest/images/p1.png
    /chargepaltest/images/swf.gif
    /chargepaltest/images/swf2.gif
    /chargepaltest/guanggao.webm
    /chargepaltest/page/rentdetail.html
    /chargepaltest/error.html
    /chargepaltest/page/main.html
    
    NETWORK:
    /chargepaltest/script/qrcode.php
    

      提示:以 "#" 开头的是注释行,但也可满足其他用途。应用的缓存会在其 manifest 文件更改时被更新。如果您编辑了一幅图片,或者修改了一个 JavaScript 函数,这些改变都不会被重新缓存。更新注释行中的日期和版本号是一种使浏览器重新缓存文件的办法。

    11、关于应用程序缓存的说明

      请留心缓存的内容。一旦文件被缓存,则浏览器会继续展示已缓存的版本,即使您修改了服务器上的文件。为了确保浏览器更新缓存,您需要更新 manifest 文件。注意: 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)。

     

    展开全文
  • 9款精挑细选的HTML5应用源码

    千次下载 热门讨论 2014-04-09 10:18:19
    9款精挑细选的HTML5应用源码,网络上看到的,觉得不错就上传出来,供大家一起共同分享。
  • 如何把HTML5应用打包为一个snap应用

    千次阅读 2017-02-13 10:16:55
    我们知道有很多的HTML5应用,但是我们如何才能把它们打包为我们的snap应用呢?特别是在Ubuntu手机手机开发的时候,有很多的已经开发好的HTML5游戏。我们可以通过我们今天讲的方法来把先前的click HTML5应用直接打包...

    在今天的文章中,我们将介绍如何把一个HTML5的应用打包为一个snap应用。我们知道有很多的HTML5应用,但是我们如何才能把它们打包为我们的snap应用呢?特别是在Ubuntu手机手机开发的时候,有很多的已经开发好的HTML5游戏。我们可以通过我们今天讲的方法来把先前的click HTML5应用直接打包为snap应用,并可以在我们的Ubuntu桌面电脑上进行运行。当然,今天介绍的方法并不仅限于Ubuntu手机开发的HTML应用。这里的方法也适用于其它的HTML5应用。




    1)HTML5应用


    首先,我们看一下我之前做过的一个为Ubuntu手机而设计的一个HTML5应用。它的地址为:


    你可以通过如下的方式得到这个代码:

    bzr branch lp:~liu-xiao-guo/debiantrial/wuziqi

    在这个应用中,我们只关心的是在它www目录里面的内容。这个项目的所有文件如下:

    $ tree
    .
    ├── manifest.json
    ├── wuziqi.apparmor
    ├── wuziqi.desktop
    ├── wuziqi.png
    ├── wuziqi.ubuntuhtmlproject
    └── www
        ├── css
        │   └── app.css
        ├── images
        │   ├── b.png
        │   └── w.png
        ├── index.html
        └── js
            └── app.js
    

    我们希望把在www里面的内容能够最终打包到我们的snap应用中去。

    2)打包HTML5应用为snap


    为了能够把我们的HTML5应用打包为一个snap应用,我们可以在项目的根目录下打入如下的命令:

    $ snapcraft init

    上面的命令将在我们的当前的目录下生产一个新的snap目录,并在里面生一个叫做snapcraft.yaml的文件。这实际上是一个模版。我们可以通过修改这个snapcraft.yaml文件来把我们的应用进行打包。运行完上面的命令后,文件架构如下:

    $ tree
    .
    ├── manifest.json
    ├── snap
    │   └── snapcraft.yaml
    ├── wuziqi.apparmor
    ├── wuziqi.desktop
    ├── wuziqi.png
    ├── wuziqi.ubuntuhtmlproject
    └── www
        ├── css
        │   └── app.css
        ├── images
        │   ├── b.png
        │   └── w.png
        ├── index.html
        └── js
            └── app.js
    

    我们通过修改snapcraft.yaml文件,并最终把它变为:

    snapcraft.yaml


    name: wuziqi
    version: '0.1'
    summary: Wuziqi Game. It shows how to snap a html5 app into a snap
    description: |
      This is a Wuziqi Game. There are two kind of chesses: white and black. Two players
      play it in turn. The first who puts the same color chesses into a line is the winner.
    
    grade: stable
    confinement: strict
    
    apps:
      wuziqi:
        command: webapp-launcher www/index.html
        plugs:
          - browser-sandbox
          - camera
          - mir
          - network
          - network-bind
          - opengl
          - pulseaudio
          - screen-inhibit-control
          - unity7
    
    plugs:
      browser-sandbox:
        interface: browser-support
        allow-sandbox: false
      platform:
        interface: content
        content: ubuntu-app-platform1
        target: ubuntu-app-platform
        default-provider: ubuntu-app-platform
    
    parts:
      webapp:
        after: [ webapp-helper, desktop-ubuntu-app-platform ]
        plugin: dump
        source: .
        stage-packages:
          - ubuntu-html5-ui-toolkit
        organize:
          'usr/share/ubuntu-html5-ui-toolkit/': www/ubuntu-html5-ui-toolkit
        prime:
          - usr/*
          - www/*

    这里的解释如下:
    • 由于这是一个HTML5的应用,我们可以通过webapp-helper来启动我们的应用。在我们的应用中我们使用被叫做webapp-helper的remote part
    • 由于在Ubuntu的手机中,web的底层部分是由Qt进行完成的,所以我们必须要把Qt也打包到我们的应用中。但是由于Qt库是比较大的,我们可以通过ubuntu-app-platform snap应用通过它提供的platform接口来得到这些Qt库。开发者可以参阅我们的文章https://developer.ubuntu.com/en/blog/2016/11/16/snapping-qt-apps/
    • 在我们的index.html文件中,有很多的诸如<script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/core.js"></script>。这显然和ubuntu-html5-ui-toolkit有关,所以,我们必须把ubuntu-html5-ui-toolkit这个包也打入到我们的应用中。这个我们通过stage-packages来安装ubuntu-html5-ui-toolkit包来实现
    • 我们通过organize把从ubuntu-html5-ui-toolkit中安装的目录ubuntu-html5-ui-toolkit重组到我们项目下的www目录中以便index.html文件引用
    我们再来看看我们的原始的index.html文件:

    index.html

    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>An Ubuntu HTML5 application</title>
        <meta name="description" content="An Ubuntu HTML5 application">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0">
    
        <!-- Ubuntu UI Style imports - Ambiance theme -->
        <link href="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/css/appTemplate.css" rel="stylesheet" type="text/css" />
    
        <!-- Ubuntu UI javascript imports - Ambiance theme -->
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/fast-buttons.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/core.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/buttons.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/dialogs.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/page.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/pagestacks.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/tab.js"></script>
        <script src="/usr/share/ubuntu-html5-ui-toolkit/0.1/ambiance/js/tabs.js"></script>
    
        <!-- Application script -->
        <script src="js/app.js"></script>
        <link href="css/app.css" rel="stylesheet" type="text/css" />
    
      </head>
    
      <body>
            <div class='test'>
              <div>
                  <img src="images/w.png" alt="white" id="chess">
              </div>
              <div>
                  <button id="start">Start</button>
              </div>
            </div>
    
            <div>
                <canvas width="640" height="640" id="canvas" οnmοusedοwn="play(event)">
                     Your Browser does not support HTML5 canvas
                </canvas>
            </div>
      </body>
    </html>

    从上面的代码中,在index.hml文件中它引用的文件是从/usr/share这里开始的。在一个confined的snap应用中,这个路径是不可以被访问的(因为一个应用只能访问自己安装在自己项目根目录下的文件)。为此,我们必须修改这个路径。我们必须把上面的/usr/share/的访问路径改变为相对于本项目中的www目录的访问路径:

        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/fast-buttons.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/core.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/buttons.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/dialogs.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/page.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/pagestacks.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/tab.js"></script>
        <script src="ubuntu-html5-ui-toolkit/0.1/ambiance/js/tabs.js"></script>

    这就是为什么我们在之前的snapcraft.yaml中看到的:

    parts:
      webapp:
        after: [ webapp-helper, desktop-ubuntu-app-platform ]
        plugin: dump
        source: .
        stage-packages:
          - ubuntu-html5-ui-toolkit
        organize:
          'usr/share/ubuntu-html5-ui-toolkit/': www/ubuntu-html5-ui-toolkit
        prime:
          - usr/*
          - www/*

    在上面,我们通过organize把ubuntu-html5-ui-toolkit安装后的目录重新组织并移到我的项目的www目录中,从而使得这里的文件可以直接被我们的项目所使用。我们经过打包后的文件架构显示如下:

    $ tree -L 3
    .
    ├── bin
    │   ├── desktop-launch
    │   └── webapp-launcher
    ├── command-wuziqi.wrapper
    ├── etc
    │   └── xdg
    │       └── qtchooser
    ├── flavor-select
    ├── meta
    │   ├── gui
    │   │   ├── wuziqi.desktop
    │   │   └── wuziqi.png
    │   └── snap.yaml
    ├── snap
    ├── ubuntu-app-platform
    ├── usr
    │   ├── bin
    │   │   └── webapp-container
    │   └── share
    │       ├── doc
    │       ├── ubuntu-html5-theme -> ubuntu-html5-ui-toolkit
    │       └── webbrowser-app
    └── www
        ├── css
        │   └── app.css
        ├── images
        │   ├── b.png
        │   └── w.png
        ├── index.html
        ├── js
        │   ├── app.js
        │   └── jquery.min.js
        └── ubuntu-html5-ui-toolkit
            └── 0.1

    在上面,我们可以看出来ubuntu-html5-ui-toolkit现在处于在www文件目录下,可以直接被我们的项目所使用。

    我们在项目的根目录下打入如下的命令:

    $ snapcraft

    如果一切顺利的话,我们可以得到一个.snap文件。我们可以通过如下的命令来进行安装:

    $ sudo snap install wuziqi_0.1_amd64.snap --dangerous

    安装完后,由于我们使用了content sharing的方法来访问Qt库,所以,我们必须安装如下的snap:

    $ snap install ubuntu-app-platform 
    $ snap connect wuziqi:platform ubuntu-app-platform:platform

    执行上面的命令后,我们可以看到:

    $ snap interfaces
    Slot                          Plug
    :account-control              -
    :alsa                         -
    :avahi-observe                -
    :bluetooth-control            -
    :browser-support              wuziqi:browser-sandbox
    :camera                       -
    :core-support                 -
    :cups-control                 -
    :dcdbas-control               -
    :docker-support               -
    :firewall-control             -
    :fuse-support                 -
    :gsettings                    -
    :hardware-observe             -
    :home                         -
    :io-ports-control             -
    :kernel-module-control        -
    :libvirt                      -
    :locale-control               -
    :log-observe                  snappy-debug
    :lxd-support                  -
    :modem-manager                -
    :mount-observe                -
    :network                      downloader,wuziqi
    :network-bind                 socketio,wuziqi
    :network-control              -
    :network-manager              -
    :network-observe              -
    :network-setup-observe        -
    :ofono                        -
    :opengl                       wuziqi
    :openvswitch                  -
    :openvswitch-support          -
    :optical-drive                -
    :physical-memory-control      -
    :physical-memory-observe      -
    :ppp                          -
    :process-control              -
    :pulseaudio                   wuziqi
    :raw-usb                      -
    :removable-media              -
    :screen-inhibit-control       wuziqi
    :shutdown                     -
    :snapd-control                -
    :system-observe               -
    :system-trace                 -
    :time-control                 -
    :timeserver-control           -
    :timezone-control             -
    :tpm                          -
    :uhid                         -
    :unity7                       wuziqi
    :upower-observe               -
    :x11                          -
    ubuntu-app-platform:platform  wuziqi
    -                             wuziqi:camera
    -                             wuziqi:mir

    当然在我们的应用中,我们也使用了冗余的plug,比如上面的camera及mir等。我们可以看到wuziqi应用和其它Core及ubuntu-app-platform snap的连接情况。在确保它们都连接好之后,我们可以在命令行中打入如下的命令:

    $ wuziqi

    它将启动我们的应用。当然,我们也可以从我们的Desktop的dash中启动我们的应用:






    展开全文
  • HTML5应用—好看的DEMO

    千次阅读 2016-11-03 15:56:12
    HTML5应用—好看的DEMO

    需要源码的加QQ交流群-“未来程序员”欢迎你的加入!QQ群号:234215761。源码在群文件中!

     一、HTML5Canvas实现各种炫酷的仪表盘动画

    仪表盘包括指南针、里程表、体温计等,你可以通过脚本控制其是否展示动画,动画效果都非常不错。

     

    二、超可爱的CSS3叮当猫动画特效

    它是一只可爱的叮当猫,鼠标滑过眼睛和嘴巴都可以让小叮当做出可爱的表情。

     

     

    三、超绚丽的HTML5地图分布动画

     它不同的地方在于它主要是在地图上实现分布动画,可以利用这款插件实现各个地区之间的客流流向,给人非常直观的数据展现。

     

    四、纯CSS3绘制的小猫笑脸动画 超呆萌

    示例中不仅用CSS3绘制了小猫的脸部,非常生动,而且小猫的眼睛还耳朵还会萌动,十分可爱。

     

    四、HTML5水波浪起伏模拟动画

    基于HTML5的水波浪起伏模拟动画,我们可以设置水的粘度,点击水面即可泛起水波浪

     

    五、纯CSS3实现大象走路动画

    纯CSS3实现的大象走路动画,大象走路时的形态表现的十分逼真

     

    六、HTML5 Canvas雷达扫描动画特效

    利用了canvas的灵活特性,利用js在canvas上绘制这些美丽的扫描线条。

     

    七、HTML5 Canvas粒子效果文字动画特效

    基于HTML5 Canvas的文字特效,输入框中输入想要展示的文字,回车后即可在canvas上绘制出粒子效果的文字动画,相当酷的动画效果。


     八、jQuery模拟键盘事件 可对应键盘每一个键

    这是一款基于jQuery的模拟键盘事件的应用,键盘上除了功能键,其他键都可以用这款插件来模拟。当你敲击键盘上的键时,这款应用会帮助你获取到这个键的事件,并在页面上的模拟键盘中以动画的形式展现出来,相当实用。

     

    九、HTML5 3D动画柱状图表

    它是一款柱状图表,呈3D的外观样式,并且我们可以改变图表的颜色主题,让其更加符合你的需求。这款HTML5图表可以切换需要查看的图表数据,在切换的时候有不错的动画效果,而且,我们还可以切换图表的大小,以适应不同大小的浏览窗口。

     

    十、HTML5 WebGL水面水波荡漾特效 可多视角展示 超逼真

    画面上是一个大水池,水池底部是一颗大石头,在水面上点击即可泛起水波,加上模拟光的照射,水波比上一款特效更加生动逼真。另外你也可以拖动石头让其在池底滚动,也可以拖动画面多视角观看该HTML5水波动画。

     

     所有资源打包下载地址得意


    如果您愿意花几块钱请我喝杯茶的话,可以用手机扫描下方的二维码,通过支付宝或者微信直接向我捐赠呦。我会第一时间给您发送源码。

    感谢无私捐赠的同胞们,赠人玫瑰之手,经久犹有余香!

     

    支付宝捐赠二维码: 

    微信捐赠二维码: 

     

    衷心感谢打赏者的厚爱与支持!也感谢点赞和评论的博友的支持!打赏后可添加朋友,可作为技术交流或潜在项目合作伙伴!谢谢!


     

    展开全文
  • HTML5应用程序缓存Application Cache

    千次阅读 2016-11-07 13:03:59
    HTML5应用程序缓存Application Cache 什么是Application Cache HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用...

    HTML5应用程序缓存Application Cache

    什么是Application Cache

    HTML5引入了应用程序缓存技术,意味着web应用可进行缓存,并在没有网络的情况下使用,通过创建cache manifest文件,可以轻松的创建离线应用。

    Application Cache带来的三个优势是:

    ① 离线浏览

    ② 提升页面载入速度

    ③ 降低服务器压力

    而且主要浏览器皆以支持Application Cache,就算不支持也不会对程序造成什么影响

    离线存储技术

    HTML5提出了两大离线存储技术:localstorage与Application Cache,两者各有应用场景;传统还有离线存储技术为Cookie。

    经过实践我们认为localstorage应该存储一些非关键性ajax数据,做锦上添花的事情;

    Application Cache用于存储静态资源,仍然是干锦上添花的事情;

    而cookie只能保存一小段文本(4096字节);所以不能存储大数据,这是cookie与上述缓存技术的差异之一,而因为HTTP是无状态的,服务器为了区分请求是否来源于同一个服务器,需要一个标识字符串,而这个任务就是cookie完成的,这一段文本每次都会在服务器与浏览器之间传递,以验证用户的权限。

    所以Application Cache的应用场景不一样,所以使用也不一致。

    Application Cache简介

    Application Cache的使用要做两方面的工作:

    ① 服务器端需要维护一个manifest清单

    ② 浏览器上只需要一个简单的设置即可

    <html  manifest="demo.appcache">

    以例子做说明:

    复制代码
    CACHE MANIFEST
    
    CACHE:
    # 需要缓存的列表
    style1.css
    1.jpg
    01.js
    http://localhost/applicationcache/02.js
    http://localhost/applicationcache/zepto.js
    
    NETWORK:
    # 不需要缓存的
    4.jpg
    
    FALLBACK:
    # 访问缓存失败后,备用访问的资源,第一个是访问源,第二个是替换文件*.html /offline.html
    2.jpg/3.jpg
    复制代码

    首先我这里报了一个错:

     Application Cache Error event: Manifest fetch failed (404)

    这个错误的原因是:manifest 文件需要配置正确的 MIME-type,即 "text/cache-manifest"。必须在 web 服务器上进行配置,不同的服务器不一样

    复制代码
    \APPLICATIONCACHE
        01.js
        02.js
        1.jpg
        2.jpg
        3.jpg
        4.jpg
        demo.appcache
        index.html
        style1.css
        style2.css
        web.config
        zepto.js
    复制代码

    这样一来便可以离线应用了,这个时候就算断网了,那些文件依旧能访问

    这里有一点值得注意,比如这里不带/index.html他会将“applicationcache/”缓存,其实这个就是index.html

    manifest 文件可分为三个部分:
    CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
    NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
    FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)

    如图所示,HTML5定义了几个事件点,但是我们一般不会主动使用js去操作什么,大多数情况下,我们完全依赖浏览器的处理即可。

    尺寸限制

    Application Cache的尺寸限制统一在5M,我这里做一个测试:

    如所示,两个css文件依旧超过了5M这个时候

    复制代码
    Document was loaded from Application Cache with manifest http://localhost/applicationcache/demo.appcache
    index.html:1 Application Cache Checking event
    index.html:6 GET http://localhost/applicationcache/style2.css net::ERR_FAILED
    index.html:1 Application Cache NoUpdate event
    index.html:11 GET http://localhost/applicationcache/2.jpg net::ERR_FAILED
    index.html:12 GET http://localhost/applicationcache/3.jpg net::ERR_FAILED
    复制代码

    如所示,style2已经不能缓存了,这个会造成什么问题呢?

    比如我A频道维护了自己的Application Cache,B频道也维护了自己的,这个时候A频道如果使用达到了一个峰值,会导致B频道所有的缓存失效,所以:

    建议Application Cache,存储公共资源,不要存储业务资源

    一些问题

    更新机制来说,首次更新manifest时,因为页面加载已经开始甚至已经完成,缓存更新尚未完成,浏览器仍然会使用过期的资源;浏览器是当Application Cache有更新时,该次不会使用新资源,第二次才会使用。这个时候update事件中执行window.reload事件。

    window.applicationCache.addEventListener("updateready", function(){
        window.location.reload()
    });

    由上例可以知道,缓存的不只是显示定义的文件,比如上例中的applicationcache/时便会默认保存index.html为映射的数据,并且包含demo.appcache文件,很多时候会遇到一次文件更新线上老是不更新,这个时候随便在manifest配置文件中做一点修改即可更新。

    比如我们将这里代码做一个改变:

    <html  manifest="demo.appcache">
    =>
    <html  manifest="demo1.appcache">

    这个时候如果不做demo.appcache的更新的话,缓存将不会更新,原因是index.html被缓存了,检测的仍然是原manifest清单

    各个页面统一管理自己的manifest清单,意思是a页面配置了common.js,b页面也配置了common.js,意思是a页面更新后,b页面的manifest不更改的话,b页面依旧读取的是老版本的文件,这个有一定道理却也有一定浪费,需要公共页面做处理。 

    总结

    从可用性与易用性来说,Application Cache是值得使用的,但是最好是做静态资源的缓存,真正要实现离线应用还得花更多的功夫呢!

    参考:http://www.w3school.com.cn/html5/html_5_app_cache.asp

    文中有何错误、不足请指出。


    展开全文
  • HTML5应用框架-Lavaca介绍

    千次阅读 2013-01-13 20:19:35
    HTML5应用框架-Lavaca介绍作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszsLavaca是一个全功能的HTML5应用框架,专注于快速、简便的构建Web应用。Lavaca是一个完整的构建系统,内建了配置以适应于...
  • 10款效果惊艳的HTML5应用

    千次阅读 2017-12-25 18:10:42
    今天给大家介绍10款效果惊艳的HTML5应用,方便大家学习,也将应用的源码整理了一下发给大家。 1、纯CSS3实现打火机火焰动画 这又是一款很酷的纯CSS3动画特效,它是一个可以点燃的打火机,当你用鼠标滑过这只...
  • 密码键盘原理与HTML5应用

    千次阅读 2016-05-27 09:43:12
    密码键盘是保护个人隐私数据的重要手段,本文介绍了密码键盘的基本原理和HTML5应用接口
  • 如何保护HTML5应用代码

    千次阅读 2013-02-01 09:57:40
    如何保护HTML5应用代码   (2012-08-23 14:29:02) 转载▼ 标签:  html5   代码   保护   混淆   加密   压缩   杂谈   独家供稿:移动Labs ...
  • 移动端HTML5应用程序调试 在做HTML5 web应用程序的时候,特别是需要和网络打交道,调试程序可能会占很大部分的时间,以下介绍几种调试方法。   1.使用fiddler辅助调试。 fiddler...
  • 7 个效果震憾的 HTML5 应用组件

    千次阅读 2013-07-10 17:09:34
    在HTML5的世界里,任何文本、图像都可以变得令人难以想象,很多HTML5应用也都已经随着浏览器的升级而变得运行飞速,而且兼容性也越来越好。下面为大家介绍7款效果震憾的HTML5应用组件,HTML5是强大的,是WEB的未来。...
  • HTML5应用创建独立于平台的Theme

    千次阅读 2015-04-08 15:27:13
    本篇文章介绍如何使HTML5应用使用独立于运行系统的theme,从而使得应用在不同的平台上有统一的UI显示。
  • 更多关于Cordova的开发指南...关于如何创建一个Cordova架构的简单的应用,开发者可以参阅文章“如何在Ubuntu手机平台中开发Cordova HTML5应用”。在那篇文章中,它介绍了如何设置自己的环境。建议开发者先阅读该文章。
  • html5应用缓存

    千次阅读 2015-09-17 23:37:56
    html5当中引入了应用程序缓存,这意味着web应用可以进行缓存,并且可以在没有网络连接的时候进行访问。 应用缓存的优势 离线浏览,用户可以在离线的时候浏览已经加载并且缓存好的数据 加快加载速度。 减少服务器...
  • HTML5应用现状分析

    千次阅读 2016-10-04 22:01:14
    根据HTML5目前 的应用现状以及趋势,结合实例总结了HTML5当下应用的主要领域。 关键词:Web应用HTML5应用趋势 自Web兴起发展至今,HTML语言从1993年发明伊始, 发布第一版草案到1999年发布HTML4.01,都在稳定地...
  • 我们知道Cordova HTML5应用具有夸平台的特性,同时也具有访问本地一些资源的能力。在今天的这篇文章中,我们将介绍一下如何创建并运行一个Cordova HTML5的应用到我们的Ubuntu手机中。本文的英文原文在...
  • HTML5应用——欢乐老虎机

    万次阅读 多人点赞 2012-02-15 12:28:00
    在上面一篇博文中,我介绍了HTML5应用的简易播放器,这篇博文中介绍一个比较复杂的HTML5游戏-老虎机。 寒假在家玩老虎机输了些许钱,所以自己就萌生了写个老虎机的游戏。开始打算用Visual C++编写的,但是考虑到...
  • HTML 5 应用程序缓存

    2016-04-12 16:37:55
    原文:http://www.w3school.com.cn/html5/html_5_app_cache.asp 使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 ...HTML5 引入了应用程序缓存,这意味着 web 应用可进行缓存,并可在没有因特网连接
  • Html5应用接入百度移动ssp广告教程

    千次阅读 2015-12-21 17:23:07
    Html5应用接入百度移动ssp广告教程 使用 Html5 打包android应用,应当如何添加广告呢?最近就遇到了这个问题。 使用 Html5 开发了个应用,想在里面植入广告来挣点小费,发现还真不容易,很少有提供js接口的,后面...
  • html5应用实例

    2017-02-08 22:23:21
    粘出一个连接放在这里,慢慢学 http://www.html5tricks.com/
  • Android中构建HTML5应用

    千次阅读 2012-02-12 11:50:58
    Android中构建HTML5应用 使用WebView控件 与其他控件的使用方法相同 在layout中使用一个标签 WebView不包括导航栏,地址栏等完整浏览器功能,只用于显示一个网页 在WebView中加载Web页面,使用loadUrl()
  • 虽然W3C预计到2022年才能正式颁布HTML5 网页标准,但是目前网络上已经有不少应用基于HTML5标准来开发,而且相当成功。相对于Flash何其它竞争对手,HTML5具有许多明显的优势,比如更加先进的图像和动画效果、动态...
  • 又开始了新的一天,我们也将继续为大家分享许多优秀的HTML5应用和jQuery插件,作为前端开发者来说,这些资源可以帮助你在项目开发上派上用场。下面一起来看看这些炫酷而实用的HTML5应用和jQuery插件吧。 1、jQuery/...
  • 10款效果惊艳的HTML5应用和源码

    千次阅读 2014-06-15 21:37:32
    HTML5已经越来越流行起来了,尤其是移动互联网的发展,更是带动了HTML5的迅猛发展,我们也是时候学习HTML5了,以防到时候...今天给大家介绍10款效果惊艳的HTML5应用,方便大家学习,也将应用的源码整理了一下发给大家。
  • HTML5应用性能调优工具WAPA – 介绍篇

    千次阅读 2013-09-17 16:09:07
    WAPA是Web Application Performance Analyzer(Web应用性能分析器)的简称,其来源于Intel软件与服务部门全球合作伙伴关系事业部HTML5应用团队的创新项目。旨在给开发者提供如何编写高性能HTML5应用程序提供代码级别的...
  • 超炫酷的jQuery/HTML5应用搜罗

    千次阅读 2014-07-17 09:41:25
    作为前端开发者,我们肯定都...下面分享了一些超炫酷的jQuery/HTML5应用,一起来看看。 1、HTML5/CSS3一组可爱的3D按钮 这是一款利用HTML5和CSS3制作而成的按钮组合,这款CSS按钮非常具有个性化。该CSS3按钮不仅具有
  • 20佳惊艳的HTML5应用程序示例

    千次阅读 2013-05-20 13:34:01
    今天,本文向大家展示20佳惊艳的HTML5应用程序示例。 1-HTML5 Canvas Collage 基于HTML5 Canvas开发的拼贴应用,每个图层都可以按不同的方式进行改变,例如移动、缩放、旋转、透明度、阴影
  • HTML5 应用现状与前景的思考

    千次阅读 2011-02-09 17:16:00
    Alex Kessinger 是 Yahoo 的一名前端工程师,本文是他对 HTML5 应用现状与前景的思考。术语首先说说 HTML5 应用中的几个定义。HTML5HTML5 最好的定义来自 Mark Pilgrim 的 Dive Into HTML5 :"HTML5 是继 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 38,202
精华内容 15,280
关键字:

html5应用