应该是缓存的问题可以适当清理浏览器缓存,其次我觉得你既然加上了背景就没有必要加颜色了,如果真的没作用建议你换一下图片格式做测试 还有就是style里应该加上属性type="text/css" 一下是我的代码请供参考:
创新互联网站建设公司,提供成都网站设计、网站制作,网页设计,建网站,PHP网站建设等专业做网站服务;可快速的进行网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,是专业的做网站团队,希望更多企业前来合作!
style type="text/css"
div{
background: url("easyui/themes/metro-red/images/panel_tools.png");
background-repeat:no-repeat;
width: 100px;
height: 100px;
}
/style
/head
body
div/div
/body
HTML5新特性如下:
1、脱机缓存。您可以在关闭浏览器并再次打开时还原数据,以减少网络流量。
2、音频和视频可以自由嵌入,多媒体形式更加灵活。
3、地理位置。地理位置定位使得定位导航不再是专属导航软件,地图也不需要下载很大的地图包。它可以通过缓存、去哪里、去哪里以及更灵活的方式来解决。
4、画布绘制提高了移动平台的绘制能力。canvas API可以用来绘制一个简单的热点地图来收集用户体验数据,并支持对图像的移动、旋转、缩放等常规编辑。
5、丰富的互动方式。提高交互能力:拖动、撤消历史操作、文本选择等。
6、与原生app相比,开发维护成本低。降低开发和维护成本;?使页面更小,减少用户不必要的开销;性能更好,功耗更低。
7、CSS3视觉设计师的辅助利器支持。CSS3支持字体嵌入、布局和最令人印象深刻的动画功能。
8、HTML5调用相机、相册和通讯录的功能。
扩展资料:
2014年10月29日,万维网联盟宣布,HTML第五次重大修订,经过近8年的努力,标准规范终于完成。HTML5旨在支持移动设备上的多媒体。引入了新的语法特性来支持这一点,如视频、音频和画布标记。HTML5还引入了一些新功能,这些功能可以真正改变用户与文档交互的方式,包括增强灵活性的新解析规则、新属性、过时或冗余属性等。
HTML5的离线web应用允许我们在脱机时与网站进行交互。这在提高网站的访问速度和制作一款web离线应用上(如HTML5游戏)有很大的使用价值。
先来了解一下HTML5应用程序缓存和浏览器缓存的区别。
(有些)浏览器会主动保存自己的缓存文件以加快网站加载速度。但是要实现浏览器缓存必须要满足一个前提,那就是网络必须要保持连接。如果网络没有连接,即使浏览器启用了对一个站点的缓存,依然无法打开这个站点。只会收到一条错误信息。而使用离线web应用,我们可以主动告诉浏览器应该从网站服务器中获取或缓存哪些文件,并且在网络离线状态下依然能够访问这个网站。
在这篇文章中,我们将展示如何创建乖巧离线的网页和应用程序使用下面的HTML5功能:
AppCache本地存储文件资源,离线访问它们作为URL
索引型数据库存储结构化数据在本地,你可以访问和查询它
DOM存储在本地存储少量的文字信息,
离线事件来检测,如果你€ 重新连接到网络
例:随时随地访问数据的离线支持
让我们€™的说,你去购物,从您 最喜爱的食品网站 的配方的打印输出,但是当你€™重新在市场上,你塔卡纳€™吨找到一些关键的成分。
试想一下,当你在家中使用移动PC浏览 食谱网站 ,部分网站会自动下载离线使用。这可以让你把你的手机PC到店,访问该网站,并在市场寻找一个新的配方。 最好的部分 是,你可以做到这一点, 而 被连接到网络。作为一个消费者,您的网站感激,因为它只是工作时,你需要它。
离线的'蛋糕'这个词使用的食谱网站的搜索结果。
作为一个开发者,你可以使这些类型的场景相结合的离线技术: AppCache ,索引型数据库 , DOM存储 , WebSockets的 (或 XHR )。 在探索个人的技术,让我们的探讨的好处。
Metro风格的应用程序和网站,离线技术让你来处理连接故障。想象一下,您的用户填写一个表格,他失去网络连接。您的网站或Metro风格的应用程序应该怎么做呢?连接自由发展的心态可以让您的应用程序是否连接到网络或不正确地独立工作。你的应用程序将正常工作。
在更复杂的情况下,Web站点和应用程序允许用户创建新的内容,并存储新的数据,即使应用程序是完全脱机。试想一下,无缝地工作在脱机状态下,如Outlook今天的Outlook Web Access(OWA)的Hotmail或GMail。
离线技术也可以通过本地缓存的资源服务,预缓存将来信息和转移从云(或网络)到客户端设备的处理能力,提高整体性能。信息越多,你€™重新能够缓存在本地,在本地搜索,并计算在本地服务器和用户的体验将更快,需要更少的资源热转印机 。
有一个Metro风格的应用程序离线工作的期望高于网站的脱机工作。因为他们使用从商店的自我包含的程序包部署,用户希望他们有某种类型的离线功能(如游戏,书籍,食谱等)。即使这些应用程序是无法创建或访问新的内容,以前的内容应该是可见的(例如联系人,会议,饲料,杂志等)。
本地缓存文件资源使用AppCache
AppCache使您能够创建长寿命的本地缓存下载的文件资源,资源可以访问而离线或使用的同时在线,以提高性能。试想一下,一个三岁的孩子使用一台笔记本电脑,下载一个交互式的Web的游戏(KidsBook)从您的家庭网络。如果应用程序的资源存储在本地,孩子可以继续在车上玩游戏,那里没有网络连接。
如果KidsBook使用AppCache,本场比赛将有缓存必要的资源(的JavaScript,HTML,CSS,音频,视频等)时,先下载后从网络上断开时,播放的游戏。这可以让孩子保持愉悦,即使设备本身没有网络连接。
AppCache创作流程。
要看到如何启用互动网页游戏脱机工作,检查出 KidsBook的 IE Test Drive网站 上的例子。
AppCache使用一个manifest文件,以缓存的内容从网站上指定资源的URI。幕后发生后,浏览器显示网页,它允许在清单文件中定义的资源被下载的缓存。这保证了资源下载到本地机器上,作为一个单位在一个事务中,创建一个本地的缓存。如果一个单一的资源下载失败,没有创建高速缓存。要更新存储在缓存中的内容,在您的服务器更新清单文件。当用户下次访问该网站时,浏览器比较明显的服务器上的文件的缓存副本。如果缓存的舱单副本是不同的服务器副本,新版本更新清单文件中定义的内容高速缓存的使用。
AppCache还允许Internet Explorer和Metro风格的应用程序在脱机状态下使用传统的URL的访问缓存的资源。这可以让你在浏览器窗口中键入一个URL,并没有任何网络连接的情况下访问此信息。此外,脱机页可以解决的URI使用本地缓存的信息。代码示例来看看在 HTML5应用程序缓存(“œAppCacheâ) 部分中的 IE10开发人员指南 。
总体而言,AppCache提供了一定的优势HTTP的缓存。HTTP缓存没有吨保证缓存的资源之后将TIF(临时Internet文件)将被清除。此外,HTTP缓存没有€™吨正确地解决在脱机状态下的URL。然而,HTTP缓存可用于优化AppCache的行为,通过指定的缓存资源的生命周期。如果从网站上下载或复制的资源从缓存的本地高速缓存中创建一个新的版本时,这将决定。
Metro风格的应用可以受益于AppCache通过在本地缓存的Web资源的访问的页框,它允许脱机访问的内容。
高速缓存大型本地使用索引型数据库的结构化数据
索引型数据库 是一个本地JavaScript对象存储在本地机器上的数据库,允许快速索引和搜索的对象。前面介绍的 食谱网站, 包括16食谱从父站点中提取的数据库。想象一下,用一个RSS feed,一个WebSocket或XHR连接的,定期更新这个数据库。这将使您的用户能够访问到最新的食谱,即使他们有没有网络连接。
索引型数据库,您可以直接操作和索引的JavaScript对象。使用索引型数据库搜索本地信息的优点是它不会强迫你总是在云中搜索,降低了计算成本。这是假设你€™重新能够维持,是缓存在本地系统中的数据的相关性。
理论上,浏览器会自动缓存图片的,
如果你的浏览器没有缓存,那有可能你把浏览器缓存禁用了,
还有一点是,即使是缓存了,浏览器还是会请求服务器的,但是请求的内容是,验证图片是否有修改,如果图片没有修改,那么服务器会返回状态码为300,而不是200,300意味着图片没有修改,那么浏览器就可以取本地缓存了,200是说图片下载传输完成的意思,就是说从服务器下载完成 ,
我觉得你的问题,应该是看到了浏览器请求,但是没有看状态吗的问题。
在明确一下:即使是缓存了,也会有请求的,只是请求的返回结果,是不是需要重新下载数据(图片)
引言
本篇文章主要介绍了前端HTML5几种存储方式的总结 ,主要包括本地存储localstorage,本地存储sessionstorage,离线缓存(application cache),Web SQL,IndexedDB。有兴趣的可以了解一下。
正文开始~
h5之前,存储主要是用cookies。cookies缺点有在请求头上带着数据,大小是4k之内。主Domain污染。
主要应用:购物车、客户登录
对于IE浏览器有UserData,大小是64k,只有IE浏览器支持。
目标
存储方式:
以键值对(Key-Value)的方式存储,永久存储,永不失效,除非手动删除。
大小:
每个域名5M
支持情况:
注意:IE9 localStorage不支持本地文件,需要将项目署到服务器,才可以支持!
常用的API:
getItem //取记录
setIten//设置记录
removeItem//移除记录
key//取key所对应的值
clear//清除记录
存储的内容:
数组,图片,json,样式,脚本。。。(只要是能序列化成字符串的内容都可以存储)
HTML5 的本地存储 API 中的 localStorage 与 sessionStorage 在使用方法上是相同的,区别在于 sessionStorage 在关闭页面后即被清空,而 localStorage 则会一直保存。
本地缓存应用所需的文件
使用方法:
①配置manifest文件
页面上:
Manifest 文件:
manifest 文件是简单的文本文件,它告知浏览器被缓存的内容(以及不缓存的内容)。
manifest 文件可分为三个部分:
①CACHE MANIFEST - 在此标题下列出的文件将在首次下载后进行缓存
②NETWORK - 在此标题下列出的文件需要与服务器的连接,且不会被缓存
③FALLBACK - 在此标题下列出的文件规定当页面无法访问时的回退页面(比如 404 页面)
完整demo:
服务器上: manifest文件需要配置正确的MIME-type,即 "text/cache-manifest"。
如Tomcat:
常用API:
核心是applicationCache对象,有个status属性,表示应用缓存的当前状态:
0(UNCACHED) : 无缓存, 即没有与页面相关的应用缓存
1(IDLE) : 闲置,即应用缓存未得到更新
2 (CHECKING) : 检查中,即正在下载描述文件并检查更新
3 (DOWNLOADING) : 下载中,即应用缓存正在下载描述文件中指定的资源
4 (UPDATEREADY) : 更新完成,所有资源都已下载完毕
5 (IDLE) : 废弃,即应用缓存的描述文件已经不存在了,因此页面无法再访问应用缓存
相关的事件:
表示应用缓存状态的改变:
checking : 在浏览器为应用缓存查找更新时触发
error : 在检查更新或下载资源期间发送错误时触发
noupdate : 在检查描述文件发现文件无变化时触发
downloading : 在开始下载应用缓存资源时触发
progress:在文件下载应用缓存的过程中持续不断地下载地触发
updateready : 在页面新的应用缓存下载完毕触发
cached : 在应用缓存完整可用时触发
Application Cache的三个优势:
① 离线浏览
② 提升页面载入速度
③ 降低服务器压力
注意事项:
1. 浏览器对缓存数据的容量限制可能不太一样(某些浏览器设置的限制是每个站点 5MB)
2. 如果manifest文件,或者内部列举的某一个文件不能正常下载,整个更新过程将视为失败,浏览器继续全部使用老的缓存
3. 引用manifest的html必须与manifest文件同源,在同一个域下
4. 浏览器会自动缓存引用manifest文件的HTML文件,这就导致如果改了HTML内容,也需要更新版本才能做到更新。
6. FALLBACK中的资源必须和manifest文件同源
7. 更新完版本后,必须刷新一次才会启动新版本(会出现重刷一次页面的情况),需要添加监听版本事件。
8. 站点中的其他页面即使没有设置manifest属性,请求的资源如果在缓存中也从缓存中访问
9. 当manifest文件发生改变时,资源请求本身也会触发更新
离线缓存与传统浏览器缓存区别:
1. 离线缓存是针对整个应用,浏览器缓存是单个文件
2. 离线缓存断网了还是可以打开页面,浏览器缓存不行
3. 离线缓存可以主动通知浏览器更新资源
关系数据库,通过SQL语句访问
Web SQL 数据库 API 并不是 HTML5 规范的一部分,但是它是一个独立的规范,引入了一组使用 SQL 操作客户端数据库的 APIs。
支持情况:
Web SQL 数据库可以在最新版的 Safari, Chrome 和 Opera 浏览器中工作。
核心方法:
①openDatabase: 这个方法使用现有的数据库或者新建的数据库创建一个数据库对象。
②transaction: 这个方法让我们能够控制一个事务,以及基于这种情况执行提交或者回滚。
③executeSql: 这个方法用于执行实际的 SQL 查询。
打开数据库:
执行查询操作:
插入数据:
读取数据:
由这些操作可以看出,基本上都是用SQL语句进行数据库的相关操作,如果你会MySQL的话,这个应该比较容易用。
索引数据库 (IndexedDB) API(作为 HTML5 的一部分)对创建具有丰富本地存储数据的数据密集型的离线 HTML5 Web 应用程序很有用。同时它还有助于本地缓存数据,使传统在线 Web 应用程序(比如移动 Web 应用程序)能够更快地运行和响应。
异步API:
在IndexedDB大部分操作并不是我们常用的调用方法,返回结果的模式,而是请求——响应的模式,比如打开数据库的操作
这样,我们打开数据库的时候,实质上返回了一个DB对象,而这个对象就在result中。由上图可以看出,除了result之外。还有几个重要的属性就是onerror、onsuccess、onupgradeneeded(我们请求打开的数据库的版本号和已经存在的数据库版本号不一致的时候调用)。这就类似于我们的ajax请求那样。我们发起了这个请求之后并不能确定它什么时候才请求成功,所以需要在回调中处理一些逻辑。
关闭与删除:
数据存储:
indexedDB中没有表的概念,而是objectStore,一个数据库中可以包含多个objectStore,objectStore是一个灵活的数据结构,可以存放多种类型数据。也就是说一个objectStore相当于一张表,里面存储的每条数据和一个键相关联。
我们可以使用每条记录中的某个指定字段作为键值(keyPath),也可以使用自动生成的递增数字作为键值(keyGenerator),也可以不指定。选择键的类型不同,objectStore可以存储的数据结构也有差异。
学习从来不是一个人的事情,要有个相互监督的伙伴,想要学习或交流前端问题的小伙伴可以私信“学习”小明获取web前端入门资料,一起学习,一起成长!