HTML5 history新特性pushState、replaceState及两者的区别

HTML5 history新特性pushState、replaceState及两者的区别
HTML5 history新特性pushState、replaceState及两者的区别

这篇文章主要介绍了HTML5 history新特性pushState、replaceState及两者的区别的相关资料,需要的朋友可以参考下

DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,让你可以在用户的访问记录中前进和后退。

从HTML5开始,我们可以开始操作这个历史记录堆栈。

1.History

使用back(),forward(),和go()方法可以在用户的历史记录中前进和后退

前进和后退

后退:

代码如下:

window.history.back();

这个方法会像用户点击了浏览器工具栏上的返回键一样。

同样的,也可以用以下方法产生用户前进行为:

代码如下:

window.history.forward();

移动到历史记录中特定的位置

你可以使用go()方法从session历史中载入特定的页面。

向后移动一页:

代码如下:

window.history.go(-1);

向前移动一页:

代码如下:

window.history.go(1);

类似的,你可以前进或者后退多页。

还可以通过检查浏览器历史记录的length属性来找到历史记录堆栈中的页面总数。

代码如下:

var numberOfEntries = window.history.length;

注意:IE支持向go()方法传URL参数。

2.添加和修改history实体

自Gecko2开始引入(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1)

HTML5引入了histtory.pushState()和history.replaceState()这两个方法,他们允许添加和修改history实体。同时,这些方法会和window.onpostate事件一起工作。

使用history.pushState()方法来修改referrer,这种方法可以被用在经过修改状态后而为xmlhttpRequest对象创建的http header中。这个referrer会是创建XMLHttpRequest 时document的URL。

pushState 用于向history 添加当前页面的记录,而replaceState 和pushState 的用法完全一样,唯一的区别就是它用于修改当前页面在history 中的记录。

例子

假设https://www.360docs.net/doc/6410804060.html,/foo.html页面执行了一下JS

代码如下:

var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html");

这种方法将会使url地址栏显示https://www.360docs.net/doc/6410804060.html,/bar.html,但浏览器不会加载bar.html

页面,即使这个页面存在也不会加载。

现在再次假设用户继续访问https://www.360docs.net/doc/6410804060.html,,然后点击后退。这时,url地址栏将会,https://www.360docs.net/doc/6410804060.html,/bar.html,页面会得到popstate事件(chrome),这个状态对象会包含一个stateObj的copy。这个页面看起来像foo.html。+

这时,我们再次点击后退,URL将变成https://www.360docs.net/doc/6410804060.html,/foo.html,document将得到另一个popstate事件和为null的state对象。这次的返回动作并没有改变文档的内容。(也许会过一会尝试加载…chrome)

pushState方法

pushState()有三个参数:state对象,标题(现在是被忽略,未作处理),URL(可选)。具体细节:

·state对象–state对象是一个JavaScript对象,它关系到由pushState()方法创建出来的新的history实体。用以存储关于你所要插入到历史记录的条目的相关信息。State对象可以是任何Json字符串。因为firefox会使用用户的硬盘来存取state对象,这个对象的最大存储空间为640k。如果大于这个数值,则pushState()方法会抛出一个异常。如果确实需要更多的空间来存储,请使用本地存储。

·title—firefox现在回忽略这个参数,虽然它可能将来会被使用上。而现在最安全的使用方式是传一个空字符串,以防止将来的修改。或者可以传一个简短的标题来表示state ·URL—这个参数用来传递新的history实体的URL,注意浏览器将不会在调用pushState()方法后加载这个URL。但也许会过一会尝试加载这个URL。比如在用户重启了浏览器后,新的url可以不是绝对路径。如果是相对路径,那么它会相对于现有的url。新的url必须和现有的url同域,否则pushState()将抛出异常。这个参数是选填的,如果为空,则会被置为document当前的url。

某种意义上来说,调用pushState()方法很像设置了window.location = “#foo”,这两者都会创建和激活另一个关联到当前document的history实体,但pushState()另外有一些优点:新的url可以是任何和当前url同域的url,相比之下,如果只设置hash,window.location 会保持在同一个document。

如果不需要,你可以不修改url。对比而言,设置window.location = “#foo”;仅产生新的history实体,如果你当前的hash不是#foo

你可以将任意的数据与你的新history实体关联。使用基于hash的方法,需要将所有相关的数据编码为一个短字符串。

注意,pushState()方法不会使hashchange时间发生,即使是新旧url只是hash不同。

replaceState()方法

history.replaceState() 用起来很像pushState(),除了replaceState()是用来修改当前的history实体而不是创建一个新的。这个方法有时会很有用,当你需要对某些用户行为作反应而更新一个state对象或者当前history实体时,可以使用它来更新state对象或者当前history实体的url。

popstate事件

当history实体被改变时,popstate事件将会发生。如果history实体是有pushState和replaceState方法产生的,popstate事件的state属性会包含一份来自history实体的state对象的拷贝

详见window.onpopstate

读取当前的state

读取现有state

当页面加载时,它可能会有一个非空的state对象。这可能发生在当页面设置一个state

对象(使用pushState或者replaceState)之后用户重启了浏览器。当页面重新加载,页面将收到onload事件,但不会有popstate事件。然而,如果你读取history.state属性,将在popstate 事件发生后得到这个state对象

var currentState = history.state;

Browsers: Tested and Working In

HTML5 Browsers

Chrome 8,9,10

Firefox 4

Safari 5

Opera 11

Safari iOS 4.3

HTML4 Browsers

IE6,7,8,9

Firefox 3

Opera 10

Safari 4

Safari iOS prior to version 4.3

pushState与replaceState区别

history.pushState(state, title, url)

--------------------------------------------------------------------------------

将当前URL和history.state加入到history中,并用新的state和URL替换当前。不会造成页面刷新。

state:与要跳转到的URL对应的状态信息。

title:可以不传

url:要跳转到的URL地址,不能跨域。

history.replaceState(state, title, url)

--------------------------------------------------------------------------------

用新的state和URL替换当前。不会造成页面刷新。

state:与要跳转到的URL对应的状态信息。

title:可以不传

url:要跳转到的URL地址,不能跨域。

--------------------------------------------------------------------------------

两者看似没有区别,其实区别很大的,pushState是添加历史记录的,而replaceState是不添加的。

Oracle数据库11g新特性:安全性

Oracle数据库11g新特性:安全性 默认口令 2006 年,OTN 发布了我撰写的一系列题为“安全保护项目:一种分阶段的数据库基础架构保护方法”的文章。在这些文章中,我讨论了如何应对常见的安全挑战(如用户使用默认口令)以及如何扫描您的数据库以查找这些用户。 对我而言很不幸的是,您可能已经忘记了我文章中的那一部分。Oracle 数据库11g 现在提供一种快速识别使用默认口令的用户的方法。该方法实施起来极为简单,只需检查单个数据字典视图:D BA_USERS_WITH_DEFPWD.(注意,DBA_ 是一个标准前缀,它不仅包含使用默认口令的DBA 用户。)您可以执行以下命令来识别这些用户: 输出如下:

由于SCOTT 使用了默认口令TIGER,因此您会看到他出现在上面的清单中。使用下面的语句进行更改: 现在,如果您查看该视图: 您就不会在该清单中看到SCOTT 了。就这么简单! 区分大小写的口令 在版本11g 之前的Oracle 数据库中,用户口令是不区分大小写的。例如:

这种安排为支付卡行业(PCI)数据安全标准之类的标准带来了问题,这些标准要求口令区分大小写。 该问题得到了解决,在Oracle 数据库11g 中,口令也可以区分大小写。通过DBCA 创建数据库时,系统会提示您是否希望升级到“新的安全标准”,其中之一就是区分大小写的口令。如果您接受该标准,口令在创建时的大小写状态将被记录下来。假如您接受了新标准,相应的操作结果如下: 注意对“tiger”和“TIGER”的不同处理方式。 现在,您的某些应用程序可能无法立刻传递大小写正确的口令。典型示例是用户输入表单:很多表单在接受口令时不会进行大小写转换。然而,在Oracle 数据库11g中,这种登录方式可能会失败,除非用户以区分大小写格式输入口令,或者开发人员对应用程序进行了修改,使其能够进行大小写转换(这一点不可能迅速实现)。 不过,如果您希望的话,仍然可以通过更改系统参数SEC_CASE_SENSITIVE_LOGON 恢复到不区分大小写的状态,如以下示例所示。

HTML5基础入门教程(小编搜集辛苦啊,必看)

HTML5教程 什么是HTML5? HTML5 将成为HTML、XHTML 以及HTML DOM 的新标准。 HTML 的上一个版本诞生于1999 年。自从那以后,Web 世界已经经历了巨变。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些HTML5 支持。 你是不是多少有了解一点,但是你却对这个不精啊!可以进群交流,⑤①④①⑥⑦⑥⑦⑧。HTML5 是如何起步的? HTML5 是W3C 与WHATWG 合作的结果。 编者注:W3C 指World Wide Web Consortium,万维网联盟。 编者注:WHATWG 指Web Hypertext Application Technology Working Group。WHATWG 致力于web 表单和应用程序,而W3C 专注于XHTML 2.0。在2006 年,双方决定进行合作,来创建一个新版本的HTML。 为HTML5 建立的一些规则: ?新特性应该基于HTML、CSS、DOM 以及JavaScript。 ?减少对外部插件的需求(比如Flash) ?更优秀的错误处理 ?更多取代脚本的标记 ?HTML5 应该独立于设备 ?开发进程应对公众透明 新特性 HTML5 中的一些有趣的新特性: ?用于绘画的canvas 元素

?用于媒介回放的video 和audio 元素 ?对本地离线存储的更好的支持 ?新的特殊内容元素,比如article、footer、header、nav、section ?新的表单控件,比如calendar、date、time、email、url、search 浏览器支持 最新版本的Safari、Chrome、Firefox 以及Opera 支持某些HTML5 特性。Internet Explorer 9 将支持某些HTML5 特性。 HTML 5 视频 许多时髦的网站都提供视频。HTML5 提供了展示视频的标准。 Web 上的视频 直到现在,仍然不存在一项旨在网页上显示视频的标准。 今天,大多数视频是通过插件(比如Flash)来显示的。然而,并非所有浏览器都拥有同样的插件。 HTML5 规定了一种通过video 元素来包含视频的标准方法。 视频格式 当前,video 元素支持两种视频格式: Internet Explorer Firefox 3.5 Opera 10.5 Chrome 3.0 Safari 3.0 Ogg X X X MPEG 4 X X Ogg = 带有Thedora 视频编码和Vorbis 音频编码的Ogg 文件 MPEG4 = 带有H.264 视频编码和AAC 音频编码的MPEG 4 文件

Oracle数据库12c各版本介绍及功能比较

Oracle Database 12c版本介绍 Oracle Database 12c有三种版本,提供多种企业版选件来满足客户对各种领域(性能和可用性、安全性和合规性、数据仓储和分析、非结构化数据和可管理性)的特定需求。 Oracle Database 12c标准版1 企业级的性能和安全性 Oracle Database 12c标准版1经过了优化,适用于部署在小型企业、各类业务部门和分散的分支机构环境中。该版本可在单个服务器上运行,最多支持两个插槽。Oracle Database 12c标准版1可以在包括Windows、Linux和Unix 在内的所有Oracle支持的操作系统上使用。 概述 ●快速安装和配置,具有内置的自动化管理 ●适用于所有类型的数据和所有应用 ●公认的性能、可靠性、安全性和可扩展性 ●使用通用代码库,可无缝升级到Oracle Database 12c标准版或Oracle Database 12c企业版 优势 ●以极低的每用户180美元起步(最少5个用户) ●以企业级性能、安全性、可用性和可扩展性支持所有业务应用 ●可运行于Windows、Linux和Unix操作系统 ●通过自动化的自我管理功能轻松管理 ●借助Oracle Application Express、Oracle SQL Developer和Oracle 面向Windows的数据访问组件简化应用开发 Oracle Database 12c标准版 经济实惠、功能全面的数据库 Oracle Database 12c标准版是面向中型企业的一个经济实惠、功能全面的数据管理解决方案。该版本中包含一个可插拔数据库用于插入云端,还包含Oracle真正应用集群用于实现企业级可用性,并且可随您的业务增长而轻松扩展。

浅谈HTML5的技术优势

龙源期刊网 https://www.360docs.net/doc/6410804060.html, 浅谈HTML5的技术优势 作者:刘媛 来源:《新一代》2018年第01期 摘要:本文通过技术分析总结了HTML 5的新特性、技术发展的新优势;通过分析HTML 5的技术劣势,总结分析出未来改进的方向;通过对html5 APP的发展现状的分析,总结出其在移动端开发的优势和不足,并通过市场发展现状,展望了HTML 5的发展前景。 关键字:HTML 5;技术优势;WEB应用 自2014年10月HTML 5正式公开发布至今已经过去了3年的时间,作为新一代的WEB 标准,它因市场缺乏统一标准的需求而生,又因其开放且强大的优势而受到各方面的关注,在备受瞩目的发展了几年之后,却又因为迟迟得不到更广泛的实际应用而质疑它的实际作用。尽管HTML 5备受争议,但不可否认的是HTML 5从根本上改变了WEB应用的开发方式,无论是桌面应用还是移动应用端,HTML 5及其标准都将持续影响着各个WEB操作平台。 下面我们将从html5的新特性、优点、不足和应用领域等几个方面,对HTML5在WEB 操作平台的发展趋势做进一步的分析,让大家对这种语言的技术优势及发展趋势有更明确的了解和认识。 一、html 5的优势 (一)更强的兼容性 Html即超文本语言已经发展了20几年,在经历了几次技术变革之后人们发现各种浏览器对其支持程度并不是越来越好,而是反其道而行之。因此,才有了新标准的出现,Html 5并不是要颠覆html发展的已有成果,而是要做到更好的兼容过去的技术,并发展和得到更多的web浏览器的支持,那么此时兼容性就变得至关重要了,HTML5想要做到的是变成web语言的共主。 (二)更具合理性 我们知道Html 5是在不断归纳和总结的基础上完成了自身的丰富性,那么它的合理性又 从何而来呢,举个例子来说,Google在对用户的标签定义习惯和使用习惯进行了百万次级别 的跟踪、分析后得出id = "nav"、id = "header"的ID定义使用率非常高,为了更好的方便用 户,html 5新增加了标签、标签等一系列的结构元素,这就使得用户的结构性定义变得更加简单和方便了。 (三)简化并提高了效率

HTML5特性概览

什么是HTML5 如何定义 狭义地讲,它是HTML4的升级版,但是它比HTML4增加了许多东西。以下关于HTML5的描述,摘自《HTML5设计原理》一文。 HTML5的“范围” 某些称呼常常被挂在嘴边:“HTML5技术”,“HTML5开发”,“某某产品HTML5版本”。 就像通讯协议2G,3G标准一样,HTML5技术内容来自各个浏览器厂商提供的成熟技术,其中一些已经被使用了多年(比如IE5,6里面的某些事实标准)。还有很多“HTML5技术”是各种存在已久工业标准往Web上面照搬(或者是子集),比如MathML(用于描述数学公式,以后做课件会很方便),HTML5内容之庞大不是几句话就可以说的清的,现在它还在不停地增长。 Javascript与HTML5的关系 JS是一门脚本语言,它可以作为某种特定软件环境的嵌入式开发语言,JS本身并不具备IO能力,所以JS本身不能进行网络通讯、界面绘制。但是,当JS嵌入到浏览器中的时候,浏览器提供了BOM和DOM两套API,前者负责与浏览器交互,后者则提供HTML&CSS排版引擎的接口给JS使用。HTML5标准增强了BOM和DOM两套API的能力,使得基于浏览器环境的开发变得更加“险恶”……更加多样化。 有人说HTML5就是Javascript,大致也没错,因为目前在浏览器端没有一种开发语言与JS竞争(IE支持VBScript,Chrome近期会支持Dart语言),所以浏览器端的程序开发一般就是指Javascript开发。 除了浏览器,JavaScript还有其它的宿主环境,比如NodeJs,NodeJs为JS提供了访问网络以及文件系统的能力,所以开发人员可以在这个环境中进行服务端的Web开发。 此外,浏览器本身也是一个可内嵌的组件,它也可以嵌入到其它程序环境中作应用层的开发,比如前网易游戏开发主管云风的博客中就曾透露,早期的西游系列网游就用了不少浏览器界面嵌入到游戏中,以降低开发成本(主要做游戏中交互菜单的部分)。当然,这种混合型的应用无处不在,我们日常生活中使用的大量桌面软件都是这种模式,比如腾讯QQ、360安全卫士等,QQ中的聊天窗口右侧部分、以及聊天记录窗口等都使用了浏览器组件。 这种形式的应用同样也存在于手机端。PhoneGap就是这样一种解决方案,它封装了手机端的底层数据、设备的访问能力给浏览器控件使用,好处是跨平台。

SQL ANYWHERE 12四大关键新特性

SQL ANYWHERE 12四大关键新特性 当前,移动应用浪潮正以迅猛的速度席卷着世界的每个角落。尤其,移动应用正越来越多地出现在企业关键业务的各个环节——办公、销售、物流、财务、客服、流程管理等等。但与此同时,众多的系统平台和移动设备、广泛的移动应用也给企业数据管理带来了全新的挑战。据Kelton Research近期发布的一份调查结果显示,在受访的IT经理中,90%的受访者计划在2011年实施全新的移动应用,其中接近一半的IT 经理认为成功管理移动应用将成为他们的首要任务。面对移动应用的多样化、分散化给企业数据管理带来的巨大压力,企业迫切需要一个功能强大的、安全可靠的移动数据管理解决方案来帮其分忧。 事实上,作为企业移动化领域的公认领导者,Sybase推出的移动数据管理和同步解决方案——SQL Anywhere已经满足了企业移动数据管理的诸多要求。借助这一解决方案,移动员工可立刻通过智能电话或其它移动设备随时随地访问公司的后台数据,提高工作效率。 SQL Anywhere介绍 SQL Anywhere是Sybase公司推出的一款能够提供数据管理和企业数据交换技术的综合程序包,它可以帮助工作人员为服务器环境、桌面环境、移动环境以及远程办公环境快速开发由数据库驱动的应用程序,并能为开发人员提供处理复杂前端环境的技术、支持他们更轻松地架构应用程序的底层数据管理、同步、安全和远程支持。 2010年,SQL Anywhere两度创新——3月,Sybase推出具备先进的空间数据功能的全新版本,7月,Sybase推出SQL Anywhere? 12,该版本拥有新的、重要的增强功能,包括支持空间数据的存储和同步、支持iPhone设备和大型同步环境,以及全新的自我管理特性。优化的SQL Anywhere适用于那些对现场IT支持要求很少或甚至无要求、在传统数据中心环境之外运行的任务关键型数据库应用。这一版本的推出使得Sybase成为业界首家为iPhone、Blackberry和Windows Mobile智能手机设备提供数据库和同步支持的数据库供应商,也是首家在移动数据库和同步平台中提供空间数据支持的供应商。 对于在传统的数据中心之外运行的应用来说,SQL Anywhere是领先的数据管理和企业同步解决方案。从一开始,SQL Anywhere就被设计成具备企业级功能、开箱即用的高性能和强大同步能力的数据库解决方案,能实施成为网络、嵌入式以及移动环境中的任务关键型数据库。 传承了简单易用、自我管理和轻松嵌入的特质,最新版本的SQL Anywhere 12持续深化这些特质,并在开发人员生产力、高性能的开箱即用、可扩展性和监控和高级数据同步方面提供了关键的新特性,以及添加到MobiLink和UltraLite中的技术新功能。 SQL Anywhere 12四大关键新特性之一——提升开发者效率 最新版本的数据库和同步解决方案——SQL Anywhere 12新增了包括空间数据在内的诸多新功能和新选项,比如空间查看器、空间数据类型、方法、构造器和函数、空间向导等,这些功能使其在SQL Anywhere 数据库、UltraLite数据库以及MobiLink同步技术中支持空间数据,大大地提升了开发人员的工作效率。 空间数据

HTML5 CSS3新特性的浏览器支持情况

代码检测HTML5/CSS3新特性的浏览器支持情况 伴随着今年10月底HTML5标准版的发布,未来使用H5的场景会越来越多,这是令web开发者欢欣鼓舞的事情。然而有一个现实我们不得不看清,那就是IE系列浏览器还占有一大部分市场份额,以IE8、9为主,windows8.1的用户已经用上了IE10/11,而考虑我国的国情,IE6、7依然存留不少。在我们放手用HTML5开发的时候,新特性支持度检测就是必不可少的了。一种方式是用https://www.360docs.net/doc/6410804060.html,erAgent或 navigator.appName来检测浏览器类型和版本,不过这种方式不是很可靠,浏览器对于一些新特性也是在逐渐支持,不能肯定说某个浏览器100%支持了HTML5。而且,IE11做了一个恶心的举动:在UA中去掉了“MSIE”标志,把appName改为了“Netspace”,并且开始支持-webkit-前缀的css属性,这是活生生要伪装成chrome的节奏。所以,HTML5/CSS3支持性的检测,还是靠特征检测(figure detection)或者说能力检测更好些。本篇就来介绍一下常用的检测方式都有哪些。 HTML5部分 检测HTML5新特性的方法主要有以下几种: 1. 检查全局对象(window或navigator)上有没有相应的属性名 2. 创建一个元素,检查元素上有没有相应的属性 3. 创建一个元素,检测元素上有没有方法名称,然后调用该方法,看能否正确执行 4. 创建一个元素,为元素的相应属性赋一个值,然后再获取此属性的值,看看赋值是否生效 由于不同浏览器的不同行为,检测一些特性的时候,可能会用到上述几个方法的组合,接下来用上面的方法做一下常用特性的检测: canvas 1.function support_canvas(){ 2. var elem = document.createElement('canvas'); 3. return !!(elem.getContext && elem.getContext('2d')); 4.}

Oracle 12C优化器的巨大变化,上生产必读(上)

Oracle 12C优化器的巨大变化,上生产必读(上) 序言 优化器是Oracle数据库最吸引人的部件之一,因为它对每一个SQL语句的处理都必不可少。优化器为每个SQL语句确定最有效的执行计划,这是基于给定的查询的结构,可用的关于底层对象的统计信息,以及所有与优化器和执行相关的特性。 随着每个新版本的发布,优化器都会进化,利用新功能以及新的统计信息来生成更好的执行计划。随着对查询优化的新的自适应方法的引入,Oracle 12c数据库把这种进化更推上了一个台阶。 这份白皮书介绍了在Oracle 12c数据库中与优化器和统计相关的所有新特性并且提供了简单的,可再现的例子,使得你能够更容易地熟悉它们。它还概括了已有的功能是如何被增强以改善性能和易管理性。 优化器和统计信息新特性 1、自适应查询优化 到目前为止,Oracle 12c数据库中最大的变化是自适应查询优化。自适应查询优化是这样的一组功能,它使得优化器能够对执行计划进行实时调整,并且发现能够导致更佳的统计信息的额外信息。当现有的统计信息不足以产生一个优化的计划,这种新方法是极其有用的。自适应查询优化包括两个方面:自适应计划,它着重于改善一个查询的初次执行;自适应统计信息,它为后续的执行提供了额外的信息。 (图1. 自适应查询优化功能的组件) 2、自适应计划

自适应计划使得优化器能够延迟产生一个语句的最终计划,直到执行的时候才决定。优化器在它所选择的计划(缺省计划)中植入统计收集器,从而在运行的时候,它能够判断自己的基数估算与计划的操作所实际看到的行数是否有很大的偏差。如果有显著的区别,那么这个计划或者计划的一部分在SQL语句的首次执行就能够被自动调整来避免不理想的性能。 3、自适应的连接方式 通过为计划中的某些分支预先确定多个子计划,优化器能够实时调整连接方式。例如,在图2中优化器的初始计划(缺省计划)为order_items 和 product_info 之间的连接选定的是嵌套循环连接,通过对product_info表的索引读取。另一个可选的子计划也同时被确定,它允许优化器将连接方式切换到哈希连接。在候选计划中product_info是通过全表扫描来读取的。 在执行的时候,统计收集器收集了关于这次执行的信息,并且将一部分进入到子计划的数据行缓存起来。在这个例子中,统计收集器监控并缓存了对order_items的全表扫描。基于它在统计收集器中看到的信息,优化器会最终确定采用哪个子计划。在这个例子中,哈希连接被选为最终计划,因为来自order_items表的行数大于优化器最初的估计。 在优化器选择了最终计划之后,统计收集器停止收集统计信息以及对数据行的缓存,而仅仅是传递数据。在子游标随后的执行中,优化器禁止了数据缓存,并且选择了同一个最终计划。目前的优化器能够从嵌套连接切换到哈希连接,反之亦然。可是,如果初始选中的连接方法是排序合并连接,则自适应不会发生。 (图2. 自适应执行计划确定Order_items 和 Prod_info 表之间的连接) 在缺省情况下,explain plan命令只会显示优化器选定的初始(缺省)计划。而 DBMS_XPLAN.DISPLAY_CURSOR只显示查询所用的最终计划。

HTML5 history新特性pushState、replaceState及两者的区别

这篇文章主要介绍了HTML5 history新特性pushState、replaceState及两者的区别的相关资料,需要的朋友可以参考下 DOM中的window对象通过window.history方法提供了对浏览器历史记录的读取,让你可以在用户的访问记录中前进和后退。 从HTML5开始,我们可以开始操作这个历史记录堆栈。 1.History 使用back(),forward(),和go()方法可以在用户的历史记录中前进和后退 前进和后退 后退: 代码如下: window.history.back(); 这个方法会像用户点击了浏览器工具栏上的返回键一样。 同样的,也可以用以下方法产生用户前进行为: 代码如下: window.history.forward(); 移动到历史记录中特定的位置 你可以使用go()方法从session历史中载入特定的页面。 向后移动一页: 代码如下: window.history.go(-1); 向前移动一页: 代码如下: window.history.go(1); 类似的,你可以前进或者后退多页。 还可以通过检查浏览器历史记录的length属性来找到历史记录堆栈中的页面总数。 代码如下: var numberOfEntries = window.history.length; 注意:IE支持向go()方法传URL参数。 2.添加和修改history实体 自Gecko2开始引入(Firefox 4 / Thunderbird 3.3 / SeaMonkey 2.1) HTML5引入了histtory.pushState()和history.replaceState()这两个方法,他们允许添加和修改history实体。同时,这些方法会和window.onpostate事件一起工作。 使用history.pushState()方法来修改referrer,这种方法可以被用在经过修改状态后而为xmlhttpRequest对象创建的http header中。这个referrer会是创建XMLHttpRequest 时document的URL。 pushState 用于向history 添加当前页面的记录,而replaceState 和pushState 的用法完全一样,唯一的区别就是它用于修改当前页面在history 中的记录。 例子 假设https://www.360docs.net/doc/6410804060.html,/foo.html页面执行了一下JS 代码如下: var stateObj = { foo: "bar" }; history.pushState(stateObj, "page 2", "bar.html"); 这种方法将会使url地址栏显示https://www.360docs.net/doc/6410804060.html,/bar.html,但浏览器不会加载bar.html

Oracle 11G新特性--ASM 增强 说明

一. ASM 快速镜像再同步(ASMFast Mirror Resync) 1.1 无ASM快速镜像再同步时 每当ASM 无法向分配给某个磁盘的区执行写入操作时,就会使该磁盘脱机,同时会在其它磁盘上至少写入一个此区(ASM 数据区)的镜像副本(如果相应的磁盘组使用了ASM 冗余)。 使用OracleDatabase 10g 时,ASM 会假定脱机磁盘只包含过时数据,因此不再从此类磁盘中读取数据。磁盘脱机后不久,ASM 就会使用冗余区副本在磁盘组中的剩余磁盘上重新创建分配给磁盘的区(ASM 数据区),将脱机的磁盘从磁盘组中删除。此进程是一项开销相对较大的操作,可能要花费几小时来完成。 如果磁盘故障只是临时性的(如电缆、主机总线适配器、控制器故障或磁盘的电源中断),则必须在临时故障修复后重新添加磁盘。但是,将删除的磁盘重新添加回磁盘组还需要将区(ASM 数据区)迁回磁盘,因此增加了成本。

1.2 ASM 快速镜像再同步 1.2.1 概述 ASM 快速镜像再同步会显著减少重新同步临时故障磁盘所需的时间。如果某个磁盘因临时故障而脱机,ASM 将跟踪在中断期间发生修改的区。临时故障被修复后,ASM 可以快速 地仅重新同步在中断期间受到影响的ASM 磁盘区。此功能假定受到影响的ASM磁盘内容未发生损坏或修改。 某个ASM 磁盘路径出现故障时,如果您已设置了相应磁盘组的DISK_REPAIR_TIME 属性,则ASM 磁盘会脱机,但不会被删除。此属性的设置确定了ASM 可容忍的磁盘中断持续时间;如果中断在此时间范围内,则修复完成后仍可重新同步。 注:跟踪机制对每个已修改的区使用一个位,这样可确保跟踪机制非常高效。 1.2.2 设置ASM 快速镜像再同步 请按磁盘组设置此功能。可以在创建磁盘组后使用ALTER DISKGROUP 命令完成此操作。使用一个类似以下命令的命令启用ASM 快速镜像再同步:

HTML5新特性安全研究综述

计算机研究与发展 Journal of Computer Research and Development DOI:10. 7544/issnl000-1239. 2016. 20160686 53(10) : 2163-2172, 2016 HTML5新特性安全研究综述 张玉清1;2贾岩1雷柯楠1吕少卿3乐洪舟1 U综合业务网理论及关键技术国家重点实验室(西安电子科技大学)西安710071) 2 (中国科学院大学国家计算机网络入侵防范中心北京101408) 3 (陕西省信息通信网络及安全重点实验室(西安邮电大学)西安710121) (zhangyq@https://www.360docs.net/doc/6410804060.html,) Survey of HTML5 New Features Security Zhang Yuqing1,2,Jia Yan1,Lei Kenan1,Lii Shaoqing3,and Yue Hongzhou1 1{State K e y La boratory o f I n t e g r a t e d S e rvi ce s Networks (X id ia n University ) ?XVan710071) 2 (National C om pu ter Netxvork Intrusion Pr ote ct ion Cent er, University o f Chinese A c a d e m y o f S ci e n c e s, B e i j i n g101408) 3{Shaanxi K e y La boratory o f I n f o r m a t i o n Communication Network a n d S e cu r i ty(X i’an University o f Posts an d Te le c om m u n ic at io n s'),X i^n710121) Abstract HTML5 is the latest standard of building Web applications. It introduces many new features to browsers, but also brings new security issues. The security of new features is the essence of HTML5 security. According to the differences in function, we analyze and summarize the security of new features including new label and form,communication, offline and storage,multimedia,performance,device access. The security problems and possible prevention methods are pointed out. Then we summarize existing researches, and classify HTML5 security problems into three categories:extending traditional threats, malicious use and improper use,to provide a new thought for the further study of HTML5 security. At last, four directions of the future work are pointed out:the security of new features, detection of malicious use, cross platform security and new security applications. Key words Web security;HTML5 ;literature review;postMessage;WebSocket;AppCache;WebStorage 摘要HTML5是构建W eb应用的最新标准,它引入许多新特性来赋予浏览器丰富的功能,但因此也引入了新的安全问题.H TM L5安全问题实际由各个新特性的安全问题组成.根据功能差异,对 H TM L5中的标签与表单、通信功能、离线应用与存储、多媒体、性能与表现、设备访问等新特性的安全 性进行了详尽的分析、总结和讨论,指出其蕴含的安全问题及可能的防范方法.然后对现有国内外研究工作进行了总结,进一步将HTML5安全问题归纳为3类:传统威胁延伸、恶意利用、使用不当,为进一步研究提供了思路.最后,指出了 HTML5安全研究未来有价值的4个方向:新特性安全性、恶意利用检测、跨平台安全性和新安全应用形式. 收稿日期:2016-08-18;修回日期:2016-09-20 基金项目:国家自然科学基金项目(61272481,61572460);国家发改委信息安全专项[(2012) 1424];国家重点研发计划项目(2016YFB0800703); 国家111项目(B16037);教育部-中国移动科研基金项目(MCM20130431) This work was supported by the National Natural Science Foundation of China (61272481,61572460) , the National Information Security Special Projects of National Development and Reform Commission of China [(2012)1424] , the National Key Research and Development Project (2016YFB0800703) , China 111 Project (B16037), and the Research Fund of Ministry of Education-China Mobile (MCM20130431).

ORACLE 12C新特性

ORACLE 12C新特性——CDB与PDB Oracle 12C引入了CDB与PDB的新特性,在ORACLE 12C数据库引入的多租用户环境(Multitenant Environment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。CDB全称为Container Database,中文翻译为数据库容器,PDB全称为Pluggable Database,即可插拔数据库。在ORACLE 12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。下面是官方文档关于CDB与PDB的关系图。 其实大家如果对SQL SERVER比较熟悉的话,这种CDB与PDB是不是感觉和SQL SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。看来ORACLE也“抄袭”了一把SQL SERVER的概念,只是改头换面的包装了一番。 CDB组件(Components of a CDB) 一个CDB数据库容器包含了下面一些组件: ROOT组件 ROOT又叫CDB$ROOT, 存储着ORACLE提供的元数据和Common User,元数据的一个例子是ORACLE提供的PL/SQL包的源代码,Common User 是指在每个容器中都存在的用户。 SEED组件

html5培训心得体会html5学习心得与体会

html5培训心得体会html5学习心得与体会 HTML 5 的第一份正式草案已于20xx年1月22日公布。HTML5 仍处于完善之中。然而,大部分现代浏览器已经具备了某些 HTML5 支持。下面是OK带来的html5培训心得,欢迎查看。 风尘仆仆的来到了大连,来参加汇博组织的HTML5培训,从HTML5基础讲起,起初并不以为然,想这HTML这个平常上课也经常接触到的东西,但是听完第一堂课后,后面的兴趣越来越浓厚,尤其是讲到HTML5的新特性时候,讲到canvas画布时候,突然感觉HTML的功能远远超出了我的想象,超出了我的预期,当自己做完第一个实例的时候,就想以后一定要把这个充满未来潜力的东西传到学校,学生一定会感兴趣。当老师简单讲完CSS和JS时候,然后将HTML5+CSS+JS结合起来的时候,就感觉这是个强大无比的组合,不次于使用C#在VS平台上实现的功能。尤其是其在游戏和动画上的效果,使得页面可以轻松抛弃Flash的枷锁也同样能够实现强大的动画效果。 最后一天Intel的老师讲到如何将HTML5的APP上传到不同平台的应用商店时候,这时候就更感到自己学到的东西有意义了。不像以前单纯教学,为了完成教学任务而教学,通过应用的上传,可以更加鼓励学生的积极性,激发他们的学习动力,嗯,不错的思路,把这个思路用在教学上,一定能有所收获,学生一定能感兴趣。

这次培训对于自己在今后教学过程中提出了一个新的思路,我们的教学可以找到学生的兴趣点,像欧美国家教育环境那样能够激发出学生自身的兴趣,而这个激发就需要我们老师和企业共同想办法能为学生由被动学习变为主动激发资深兴趣去学习。这才是最重要的,才能培养出高质量人才。总之,感谢Intel,感谢微软,感谢汇博给我们提供了这次培训,期待下次培训。 HTML5在网页开发上,赋予网页更好的意义和结构,更加丰富的标签将随着对RDFa的,微数据与微格式等方面的支持,构建对程序、对用户都更有价值的数据驱动的Web。北京恒泰博远软件开发公司对HTML5的解释是,为开发者提供了一个跨平台的移动apps开发方案,并且该方案具有很好的扩展性和灵活性。 由目前it行业使用html5 开发app来看,如今国内使用html5开发app应用技术尚有欠缺,因为在手机开发app上,html5应用只有两种方法,要不就是全使用HTML5的语法,要不就是仅使用JavaScript引擎。 JavaScript引擎的构建方法让制作手机网页游戏成为可能。由于界面层很复杂,已预订了一个UI工具包去使用。

Oracle 数据库12c新特性总结

Oracle 数据库 12c 新特性总结
导读:本系列文章是 Oracle ACE 总监 Syed Jaffer Hussain 对 Oracle 数据库 12c 的一些 新特性总结,包括数据库管理、RMAN、高可用性以及性能调优等内容。 关键词:Oracle 数据库 12c RMAN PGA 限制 不可见字段
【TechTarget 中国原创】 编者按:甲骨文公司近日正式发布了新版旗舰级数
据库 Oracle Database 12c,在 TechTarget 数据库网站之前的一些报道中,我 们曾对 12c 的一些新特性进行了介绍(参考:尝鲜 Oracle Database 12c 的十 二大新特性)而随着产品正式 GA,相关技术文档也披露了更多关于 12c 数据库 的细节。本系列文章是 Oracle ACE 总监 Syed Jaffer Hussain 对 Oracle 数据 库 12c 的一些新特性总结,包括数据库管理、RMAN、高可用性以及性能调优 等内容。
Oracle 数据库 12c 新特性总结(一)
在第一部分中,我们将介绍: 1. 在线迁移活跃的数据文件 2. 表分区或子分区的在线迁移 3. 不可见字段 4. 相同字段上的多重索引 5. DDL 日志 6. 临时 undo

7. 新的备份用户特权 8. 如何在 RMAN 中执行 SQL 语句 9. RMAN 中的表级别恢复 10. PGA 的大小限制问题
1. 在线重命名和重新定位活跃数据文件
不同于以往的版本,在 Oracle 数据库 12c R1 版本中对数据文件的迁移或 重命名不再需要太多繁琐的步骤,即把表空间置为只读模式,接下来是对数据文 件进行离线操作。 在 12c R1 中, 可以使用 ALTER DATABASE MOVE DATAFILE 这样的 SQL 语句对数据文件进行在线重命名和移动。而当此数据文件正在传输 时,终端用户可以执行查询,DML 以及 DDL 方面的任务。另外,数据文件可以 在存储设备间迁移,如从非 ASM 迁移至 ASM,反之亦然。 重命名数据文件:
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users01.dbf' TO '/u00/data/u sers_01.dbf';
从非 ASM 迁移数据文件至 ASM:
SQL> ALTER DATABASE MOVE DATAFILE '/u00/data/users_01.dbf' TO '+DG_DATA ';
将数据文件从一个 ASM 磁盘群组迁移至另一个 ASM 磁盘群组:
SQL> ALTER DATABASE MOVE DATAFILE '+DG_DATA/DBNAME/DATAFILE/users_0 1.dbf ' TO '+DG_DATA_02';

检测浏览器支持哪些HTML5新特性的方法

检测浏览器支持哪些HTML5新特性的方法 HTML5不能说是一个全新的事物,但是大部分人对HTML5的了解还是比较少的。(如果你想了解HTML5的话,不妨查看IE9发布的HTML5视频。)虽然目前新版的主流浏览器,诸如IE9、Firefox4、Chrome10都已经开始支持HTML5特性了,但是目前所有浏览器对HTML5的支持事不完整的,主要是因为HTML5还处在制定过程中。如果你想检测你的浏览器究竟支持HTML 5 的哪些特性,可以查看下面我们介绍的一种方法。 当浏览器渲染web 页面的时候,它会构造一个文档对象模型(Document Object Model,DOM)。这是一组用于表现页面上HTML 元素的对象。每一个元素,例如每一个,每一个

,每一个 都有不同的DOM 对象表示。当然,也有一种全局的对象,例如window 和document,不过它们不是用来表示特定元素的。 所有的DOM 对象都有一些通用属性,也有其自己特有的属性。支持HTML 5 特性的浏览器就会包含这种独一无二的属性。因此,我们利用这种技术,就可以检测浏览器究竟支持哪些新特性。在本节的后面的部分中,我们将从易到难地详细介绍这种技术。 Modernizr —— HTML 5 检测库 Modernizr 是一个开源的,基于MIT 协议的JavaScript HTML 5特性检测库。它能够检测很多HTML 5 和CSS 3 的特性。你可以在其主页或者这里的地址(modernizr-1.7.min.js,注意修改后缀名)中找到最新版本(当前最新版本是1.7)。同别的JS 库一样,你应该在head 块中将其引入: Dive Into HTML5 … Modernizr 会自动运行,不需要调用类似modernizr_init() 的函数。一旦开始运行,它就会创建一个名叫Modernizr 的全局变量。这个全局变量包含它能够检测到的新特性的布尔值。例如,如果你的浏览器支持canvas API,那么Modernizr.canvas 就会是true;如果不支持则是false。 if (Modernizr.canvas) { // let’s draw some shapes! } else { // no native canvas support available

HTML5新特性(学术论文)

HTML5新特性 重庆工商大学计信学院计算机科学与技术专业07软件一班肖文 指导老师:唐灿 重庆工商大学计算机科学与信息工程学院计算机科学与技术专业,重庆市400067 肖文 Major of Computer Science and technology,Department of Computer Technology and Information Program,Chongqing Technical and Business University,400067,Chongqing E-mail:shallwin1314@https://www.360docs.net/doc/6410804060.html,,Phone:+86-158-2617-3558 Introduction of HTML5 Abstract:HTML5standard has been proposed several years ago,But the development has been limited in all aspects,not only from its own reasons,The main problem is the supplier of the browser support for HTML5standard level of rapid development in the rich client today,Flash is almost achieved a monopoly position, But the challenges HTML5to the flash,it adds a lot of features,adding multimedia support and a new tag for graphics rendering,From an external plug-in enables users to achieve a rich user experience,Whether the development of HTML5will be smooth sailing,can shake the dominance of flash,all this only time will tell us. 摘要:HTML5的标准几年前就已经被提出,但发展一直受到各方面的限制,不仅来自于自身的原因,更主要的是由于各浏览器供应商对HTML5标准的支持程度,在富客户端发展迅速的今天,Flash几乎达到了一个垄断的地位,但HTML5向flash提出了挑战,它添加了诸多的特性,添加了多媒体的支持以及用于图形绘制的新标签,使用户可以脱离外部插件达到丰富的用户体验,HTML5的发展是否会一帆风顺,能否撼动flash的霸主地位,这一切都只有让时间来告诉我们。 关键词:HTML5;flash;标准