﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-奇怪的杯子</title><link>http://www.blogjava.net/hewenkun/</link><description>年轻没有失败、</description><language>zh-cn</language><lastBuildDate>Thu, 23 Apr 2026 10:03:38 GMT</lastBuildDate><pubDate>Thu, 23 Apr 2026 10:03:38 GMT</pubDate><ttl>60</ttl><item><title>Ajax-------IE和FIREFOX 脚本的一些区别</title><link>http://www.blogjava.net/hewenkun/archive/2012/01/18/368686.html</link><dc:creator>奇怪的杯子</dc:creator><author>奇怪的杯子</author><pubDate>Wed, 18 Jan 2012 01:53:00 GMT</pubDate><guid>http://www.blogjava.net/hewenkun/archive/2012/01/18/368686.html</guid><wfw:comment>http://www.blogjava.net/hewenkun/comments/368686.html</wfw:comment><comments>http://www.blogjava.net/hewenkun/archive/2012/01/18/368686.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hewenkun/comments/commentRss/368686.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hewenkun/services/trackbacks/368686.html</trackback:ping><description><![CDATA[<span class="javascript" id="text6696983" style="font-size: 12px">转：用AJAX开发 不可避免的要遇到浏览器不同，实现不同的问题，下面是AoiUmi的一些总结。<br /><br />1：innerText<br />IE支持，FIREFOX不支持<br />解决办法：用innerHTML,2种浏览器都识别innerHTML<br /><br />2：document.createElement<br />document.appendChild<br />在往表里插入行时<br />FIREFOX支持，IE不支持<br />解决办法：把行插入到TBODY中，不要直接插入到表<br /><br />3：setAttribute('style','color:red;')<br />FIREFOX支持(除了IE，现在所有浏览器都支持)，IE不支持<br />解决办法：不用setAttribute('style','color:red')<br />而用object.style.cssText = 'color:red;'(这写法也有例外)<br />最好的办法是上面种方法都用上，万无一失 ^_^<br />4:class<br />setAttribute('class','styleClass')<br />FIREFOX支持，IE不支持(指定属性名为CLASS，IE不会设置元素的CLASS属性，相反只使用SETATTRIBUTE时IE自动识别CLASSNAME属性)<br />解决办法：<br />setAttribute('class','styleClass')<br />setAttribute('className','styleClass')<br />2种都用上<br /><br />5:用setAttribute设置事件<br />var obj = document.getElementById('objId');<br />obj.setAttribute('onclick','funcitonname();');<br />FIREFOX支持，IE不支持<br />解决办法：<br />IE中必须用点记法来引用所需的事件处理程序,并且要用赋予匿名函数<br />如下：<br />var obj = document.getElementById('objId');<br />obj.onclick=function(){fucntionname();};<br />这种方法所有浏览器都支持<br /><br />6：建立单选钮<br />IE以外的浏览器<br />var rdo = document.createElement('input');<br />rdo.setAttribute('type','radio');<br />rdo.setAttribute('name','radiobtn');<br />rdo.setAttribute('value','checked');<br /><br />IE:<br />var rdo =document.createElement("&lt;input type='radio' name='radiobtn' value='checked'&gt;");<br />解决办法：<br />这一点区别和前面的都不一样。这次完全不同，所以找不到共同的办法来解决，那么只有IF-ELSE了<br />万幸的是，IE可以识别出document的uniqueID属性，别的浏览器都不可以识别出这一属性。问题解决。<br /><br />0：共同的一些技巧<br />在动态建立INPUT型输入元素时，一般是先加入，在设置TYPE。这就有可能出错<br /><br />好习惯：var btn = document.createElement('input');<br />btn.setAttribut('type','button');<br />document.getElementById('formId').appendChild(btn);</span> <br /><img src ="http://www.blogjava.net/hewenkun/aggbug/368686.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hewenkun/" target="_blank">奇怪的杯子</a> 2012-01-18 09:53 <a href="http://www.blogjava.net/hewenkun/archive/2012/01/18/368686.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>四种操作xml的方式： SAX, DOM, JDOM , DOM4J的比较 </title><link>http://www.blogjava.net/hewenkun/archive/2012/01/18/368685.html</link><dc:creator>奇怪的杯子</dc:creator><author>奇怪的杯子</author><pubDate>Wed, 18 Jan 2012 01:51:00 GMT</pubDate><guid>http://www.blogjava.net/hewenkun/archive/2012/01/18/368685.html</guid><wfw:comment>http://www.blogjava.net/hewenkun/comments/368685.html</wfw:comment><comments>http://www.blogjava.net/hewenkun/archive/2012/01/18/368685.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hewenkun/comments/commentRss/368685.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hewenkun/services/trackbacks/368685.html</trackback:ping><description><![CDATA[<div>
<p>1. 介绍</p>
<p>1）DOM(JAXP&nbsp;Crimson解析器) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; DOM是用与平台和语言无关的方式表示XML文档的官方W3C标准。DOM是以层次结构组织的节点或信息片断的集合。这个层次结构允许开发人员在树中寻找特定信息。分析该结构通常需要加载整个文档和构造层次结构，然后才能做任何工作。由于它是基于信息层次的，因而DOM被认为是基于树或基于对象的。DOM以及广义的基于树的处理具有几个优点。首先，由于树在内存中是持久的，因此可以修改它以便应用程序能对数据和结构作出更改。它还可以在任何时候在树中上下导航，而不是像SAX那样是一次性的处理。DOM使用起来也要简单得多。</p>
<p>2）SAX</p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SAX处理的优点非常类似于流媒体的优点。分析能够立即开始，而不是等待所有的数据被处理。而且，由于应用程序只是在读取数据时检查数据，因此不需要将数据存储在内存中。这对于大型文档来说是个巨大的优点。事实上，应用程序甚至不必解析整个文档；它可以在某个条件得到满足时停止解析。一般来说，SAX还比它的替代者DOM快许多。 <br />&nbsp;　　选择DOM还是选择SAX？ 对于需要自己编写代码来处理XML文档的开发人员来说，&nbsp; 选择DOM还是SAX解析模型是一个非常重要的设计决策。 DOM采用建立树形结构的方式访问XML文档，而SAX采用的事件模型。 <br /><br />　　DOM解析器把XML文档转化为一个包含其内容的树，并可以对树进行遍历。用DOM解析模型的优点是编程容易，开发人员只需要调用建树的指令，然后利用navigation&nbsp;APIs访问所需的树节点来完成任务。可以很容易的添加和修改树中的元素。然而由于使用DOM解析器的时候需要处理整个XML文档，所以对性能和内存的要求比较高，尤其是遇到很大的XML文件的时候。由于它的遍历能力，DOM解析器常用于XML文档需要频繁的改变的服务中。 <br /><br />　　SAX解析器采用了基于事件的模型，它在解析XML文档的时候可以触发一系列的事件，当发现给定的tag的时候，它可以激活一个回调方法，告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低，因为它让开发人员自己来决定所要处理的tag。特别是当开发人员只需要处理文档中所包含的部分数据时，SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难，而且很难同时访问同一个文档中的多处不同数据。 </p>
<p>3）JDOM&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;<a href="http://www.jdom.org/"><font color="#0000ff">http://www.jdom.org/</font></a></p>
<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; JDOM的目的是成为Java特定文档模型，它简化与XML的交互并且比使用DOM实现更快。由于是第一个Java特定模型，JDOM一直得到大力推广和促进。正在考虑通过&#8220;Java规范请求JSR-102&#8221;将它最终用作&#8220;Java标准扩展&#8221;。从2000年初就已经开始了JDOM开发。 </p>
<p>　　JDOM与DOM主要有两方面不同。首先，JDOM仅使用具体类而不使用接口。这在某些方面简化了API，但是也限制了灵活性。第二，API大量使用了Collections类，简化了那些已经熟悉这些类的Java开发者的使用。 </p>
<p>　　JDOM文档声明其目的是&#8220;使用20%(或更少)的精力解决80%(或更多)Java/XML问题&#8221;(根据学习曲线假定为20%)。JDOM对于大多数Java/XML应用程序来说当然是有用的，并且大多数开发者发现API比DOM容易理解得多。JDOM还包括对程序行为的相当广泛检查以防止用户做任何在XML中无意义的事。然而，它仍需要您充分理解XML以便做一些超出基本的工作(或者甚至理解某些情况下的错误)。这也许是比学习DOM或JDOM接口都更有意义的工作。 </p>
<p>　　JDOM自身不包含解析器。它通常使用SAX2解析器来解析和验证输入XML文档(尽管它还可以将以前构造的DOM表示作为输入)。它包含一些转换器以将JDOM表示输出成SAX2事件流、DOM模型或XML文本文档。JDOM是在Apache许可证变体下发布的开放源码。</p>
<p>4）DOM4J&nbsp;http://dom4j.sourceforge.net/&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 虽然DOM4J代表了完全独立的开发结果，但最初，它是JDOM的一种智能分支。它合并了许多超出基本XML文档表示的功能，包括集成的XPath支持、XML Schema支持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项，它通过DOM4J API和标准DOM接口具有并行访问功能。从2000下半年开始，它就一直处于开发之中。 </p>
<p>　　为支持所有这些功能，DOM4J使用接口和抽象基本类方法。DOM4J大量使用了API中的Collections类，但是在许多情况下，它还提供一些替代方法以允许更好的性能或更直接的编码方法。直接好处是，虽然DOM4J付出了更复杂的API的代价，但是它提供了比JDOM大得多的灵活性。 </p>
<p>　　在添加灵活性、XPath集成和对大文档处理的目标时，DOM4J的目标与JDOM是一样的：针对Java开发者的易用性和直观操作。它还致力于成为比JDOM更完整的解决方案，实现在本质上处理所有Java/XML问题的目标。在完成该目标时，它比JDOM更少强调防止不正确的应用程序行为。 </p>
<p>　　DOM4J是一个非常非常优秀的Java XML API，具有性能优异、功能强大和极端易用使用的特点，同时它也是一个开放源代码的软件。如今你可以看到越来越多的Java软件都在使用DOM4J来读写XML，特别值得一提的是连Sun的JAXM也在用DOM4J。 <br /></p>
<p>2.. 比较</p>
<p>1）DOM4J性能最好，连Sun的JAXM也在用DOM4J。目前许多开源项目中大量采用DOM4J，例如大名鼎鼎的Hibernate也用DOM4J来读取XML配置文件。如果不考虑可移植性，那就采用DOM4J.</p>
<p>2）JDOM和DOM在性能测试时表现不佳，在测试10M文档时内存溢出。在小文档情况下还值得考虑使用DOM和JDOM。虽然JDOM的开发者已经说明他们期望在正式发行版前专注性能问题，但是从性能观点来看，它确实没有值得推荐之处。另外，DOM仍是一个非常好的选择。DOM实现广泛应用于多种编程语言。它还是许多其它与XML相关的标准的基础，因为它正式获得W3C推荐(与基于非标准的Java模型相对)，所以在某些类型的项目中可能也需要它(如在JavaScript中使用DOM)。</p>
<p>3）SAX表现较好，这要依赖于它特定的解析方式－事件驱动。一个SAX检测即将到来的XML流，但并没有载入到内存(当然当XML流被读入时，会有部分文档暂时隐藏在内存中)。</p>
<p>3. 四种xml操作方式的基本使用方法</p>
<p>xml文件：</p>
<p>&lt;?xml version="1.0" encoding="utf-8" ?&gt; <br />&lt;Result&gt;<br />&nbsp;&nbsp; &lt;VALUE&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;NO DATE="2005"&gt;A1&lt;/NO&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ADDR&gt;GZ&lt;/ADDR&gt;<br />&nbsp;&nbsp; &lt;/VALUE&gt;<br />&nbsp;&nbsp; &lt;VALUE&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;NO DATE="2004"&gt;A2&lt;/NO&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;ADDR&gt;XG&lt;/ADDR&gt;<br />&nbsp; &lt;/VALUE&gt;<br />&lt;/Result&gt;</p>
<p>1）DOM</p>
<p>import java.io.*;<br />import java.util.*;<br />import org.w3c.dom.*;<br />import javax.xml.parsers.*; </p>
<p>public class MyXMLReader{ <br />　public static void main(String arge[]){ </p>
<p>　　long lasting =System.currentTimeMillis(); <br />　　try{&nbsp; <br />　　　File f=new File("data_10k.xml"); <br />　　　DocumentBuilderFactory factory=DocumentBuilderFactory.newInstance(); <br />　　　DocumentBuilder builder=factory.newDocumentBuilder(); <br />　　　Document doc = builder.parse(f); <br />　　　NodeList nl = doc.getElementsByTagName("VALUE"); <br />　　　for (int i=0;i＜nl.getLength();i++){ <br />　　　　System.out.print("车牌号码:" + doc.getElementsByTagName("NO").item(i).getFirstChild().getNodeValue()); <br />　　　　System.out.println("车主地址:" + doc.getElementsByTagName("ADDR").item(i).getFirstChild().getNodeValue()); <br />　 　} <br />　　}catch(Exception e){ <br />　　　e.printStackTrace(); <br />} </p>
<p>2）SAX</p>
<p>import org.xml.sax.*;<br />import org.xml.sax.helpers.*;<br />import javax.xml.parsers.*; </p>
<p>public class MyXMLReader extends DefaultHandler { </p>
<p>　java.util.Stack tags = new java.util.Stack(); <br />　public MyXMLReader() { <br />　　super();<br />&nbsp;&nbsp; } </p>
<p>　public static void main(String args[]) { <br />　　long lasting = System.currentTimeMillis(); <br />　　try { <br />　　　SAXParserFactory sf = SAXParserFactory.newInstance(); <br />　　　SAXParser sp = sf.newSAXParser(); <br />　　　MyXMLReader reader = new MyXMLReader(); <br />　　　sp.parse(new InputSource("data_10k.xml"), reader); <br />　　} catch (Exception e) { <br />　　　e.printStackTrace(); <br />　　} </p>
<p>　　System.out.println("运行时间：" + (System.currentTimeMillis() - lasting) + "毫秒");} <br />　　public void characters(char ch[], int start, int length) throws SAXException { <br />　　String tag = (String) tags.peek(); <br />　　if (tag.equals("NO")) {&nbsp; <br />　　　System.out.print("车牌号码：" + new String(ch, start, length));<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp;&nbsp; if (tag.equals("ADDR")) { <br />　　System.out.println("地址:" + new String(ch, start, length));<br />&nbsp;&nbsp;&nbsp; }<br />&nbsp;&nbsp; } </p>
<p>　　public void startElement(String uri,String localName,String qName,Attributes attrs) { <br />　　tags.push(qName);}<br />}&nbsp; </p>
<p>3） JDOM</p>
<p>import java.io.*;<br />import java.util.*;<br />import org.jdom.*;<br />import org.jdom.input.*; </p>
<p>public class MyXMLReader { </p>
<p>　public static void main(String arge[]) { <br />　　long lasting = System.currentTimeMillis(); <br />　　try { <br />　　　SAXBuilder builder = new SAXBuilder();&nbsp; <br />　　　Document doc = builder.build(new File("data_10k.xml"));&nbsp; <br />　　　Element foo = doc.getRootElement();&nbsp; <br />　　　List allChildren = foo.getChildren();&nbsp; <br />　　　for(int i=0;i＜allChildren.size();i++) {&nbsp; <br />　　　　System.out.print("车牌号码:" + ((Element)allChildren.get(i)).getChild("NO").getText()); <br />　　　　System.out.println("车主地址:" + ((Element)allChildren.get(i)).getChild("ADDR").getText()); <br />　　　} <br />　　} catch (Exception e) { <br />　　　e.printStackTrace(); <br />} </p>
<p>}</p>
<p>4）DOM4J</p>
<p>import java.io.*;<br />import java.util.*;<br />import org.dom4j.*;<br />import org.dom4j.io.*; </p>
<p>public class MyXMLReader { </p>
<p>　public static void main(String arge[]) { <br />　　long lasting = System.currentTimeMillis(); <br />　　try { <br />　　　File f = new File("data_10k.xml"); <br />　　　SAXReader reader = new SAXReader(); <br />　　　Document doc = reader.read(f); <br />　　　Element root = doc.getRootElement(); <br />　　　Element foo; <br />　　　for (Iterator i = root.elementIterator("VALUE"); i.hasNext();) { <br />　　　　foo = (Element) i.next(); <br />　　　　System.out.print("车牌号码:" + foo.elementText("NO")); <br />　　　　System.out.println("车主地址:" + foo.elementText("ADDR")); <br />　　　} <br />　　} catch (Exception e) { <br />　　　e.printStackTrace(); <br />&nbsp;&nbsp;&nbsp; } <br />}</p></div><br /><img src ="http://www.blogjava.net/hewenkun/aggbug/368685.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hewenkun/" target="_blank">奇怪的杯子</a> 2012-01-18 09:51 <a href="http://www.blogjava.net/hewenkun/archive/2012/01/18/368685.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DOM元素如何获得焦点</title><link>http://www.blogjava.net/hewenkun/archive/2012/01/18/368684.html</link><dc:creator>奇怪的杯子</dc:creator><author>奇怪的杯子</author><pubDate>Wed, 18 Jan 2012 01:49:00 GMT</pubDate><guid>http://www.blogjava.net/hewenkun/archive/2012/01/18/368684.html</guid><wfw:comment>http://www.blogjava.net/hewenkun/comments/368684.html</wfw:comment><comments>http://www.blogjava.net/hewenkun/archive/2012/01/18/368684.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hewenkun/comments/commentRss/368684.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hewenkun/services/trackbacks/368684.html</trackback:ping><description><![CDATA[<div><span style="font-family: Arial, Helvetica, 宋体; background-color: #ffffff">首先让我们看看哪些元素可以直接获得焦点</span><code style="display: block; margin: 10px 0px; border-bottom: #b8e78b 1px solid; background-color: #ffffff">element..focus()</code> 
<blockquote style="border-bottom-width: 1px; border-bottom-color: #b8e78b; margin-left: 0px; margin-right: 0px; font-family: Arial, Helvetica, 宋体; background-color: #ffffff">
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">// Form : http://www.w3.org/TR/html5/editing.html#focusable</p>
<ul style="padding-right: 0px; padding-left: 0px; padding-bottom: 0px; margin: 10px; padding-top: 0px; list-style-type: none"><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">a elements that have an href attribute</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">link elements that have an href attribute</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">button elements that are not disabled</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">input elements whose type attribute are not in the Hidden state and that are not disabled</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">select elements that are not disabled</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">textarea elements that are not disabled</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">command elements that do not have a disabled attribute</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">Elements with a draggable attribute set, if that would enable the user agent to allow the user to begin a drag operations for those elements without the use of a pointing device</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">Each shape that is generated for an area element</li><li style="background-position: 0px 2px; padding-left: 15px;background-image: url(http://www.scriptlover.com/img/bg/bullet.gif); background-origin: initial; background-clip: initial">&#8230;</li></ul></blockquote>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px; font-family: Arial, Helvetica, 宋体; background-color: #ffffff">而除上面以外的元素（比如：div，p）一般都无法直接获得焦点，那如何处理呢？</p>
<ol style="padding-left: 25px; margin: 10px; font-family: Arial, Helvetica, 宋体; background-color: #ffffff"><li>给元素添加 contenteditable 属性。<br />
<blockquote style="border-bottom-width: 1px; border-bottom-color: #b8e78b; margin-left: 0px; margin-right: 0px; background-color: #f1ffe3">
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-contenteditable</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">User agents must make&nbsp;<strong>editing hosts&nbsp;</strong><strong>focusable</strong>&nbsp;(which typically means they enter the tab order).</p></blockquote></li><li>给元素添加 tabindex 属性。<br />
<blockquote style="border-bottom-width: 1px; border-bottom-color: #b8e78b; margin-left: 0px; margin-right: 0px; background-color: #f1ffe3">
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-tabindex</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">The&nbsp;<strong>tabindex</strong>&nbsp;content attribute specifies&nbsp;<strong>whether the element is focusable</strong>, whether it can be reached using sequential focus navigation, and the relative order of the element for the purposes of sequential focus navigation.</p></blockquote>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">非常推荐使用tabindex = -1 ，基本无副作用！！</p>
<blockquote style="border-bottom-width: 1px; border-bottom-color: #b8e78b; margin-left: 0px; margin-right: 0px; background-color: #f1ffe3">
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px">// From : http://www.w3.org/TR/2009/WD-html5-20090423/editing.html#attr-tabindex</p>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px"><strong>If the value is a negative integer:&nbsp;</strong>The user agent must allow the element to be focused,&nbsp;<strong>but should not allow the element to be reached using sequential focus navigation</strong>.</p></blockquote></li></ol>
<p style="padding-right: 0px; padding-left: 0px; padding-bottom: 5px; margin: 0px; padding-top: 5px; font-family: Arial, Helvetica, 宋体; background-color: #ffffff">综述，使无法直接获得焦点的元素获得焦点的最佳实践就是：给元素添加<code style="display: block; margin: 10px 0px; border-bottom: #b8e78b 1px solid; background-color: #f1ffe3">tabindex&nbsp;=&nbsp;-1</code></p></div><img src ="http://www.blogjava.net/hewenkun/aggbug/368684.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hewenkun/" target="_blank">奇怪的杯子</a> 2012-01-18 09:49 <a href="http://www.blogjava.net/hewenkun/archive/2012/01/18/368684.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>oracle数据恢复</title><link>http://www.blogjava.net/hewenkun/archive/2012/01/18/368683.html</link><dc:creator>奇怪的杯子</dc:creator><author>奇怪的杯子</author><pubDate>Wed, 18 Jan 2012 01:40:00 GMT</pubDate><guid>http://www.blogjava.net/hewenkun/archive/2012/01/18/368683.html</guid><wfw:comment>http://www.blogjava.net/hewenkun/comments/368683.html</wfw:comment><comments>http://www.blogjava.net/hewenkun/archive/2012/01/18/368683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/hewenkun/comments/commentRss/368683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/hewenkun/services/trackbacks/368683.html</trackback:ping><description><![CDATA[<strong><font size="5">1. </font></strong>
<div style="display: inline-block"></div><strong>表查询闪回</strong><br /><font size="2">create table xcp as (select * from b_za_bzdzkxx);<br />select * from xcp;<br />select count(1) from xcp;--22001<br />select count(1) from xcp t where t.dzbh like '510521%';--7011<br />delete from xcp t where t.dzbh like '510521%';<br />select count(1) from xcp;--14990<br /></font><font size="2"><strong><span style="background-color: yellow">－－查找指定时间点前</span><span style="background-color: yellow">的数据</span><br /></strong><span style="background-color: yellow">select count(1) from xcp </span><span style="color: red; background-color: yellow"><strong>as of timestamp</strong> </span><span style="background-color: yellow">to_timestamp('2011-12-23 10:49:30','yyyy-MM-dd hh24:mi:ss');--</span></font><font size="2"><span style="background-color: yellow">22001<br /></span><br />select * from xcp for update;－－添加一条记录<br />select count(1) from xcp;--14991<br /></font><strong><span style="background-color: yellow"><br /><font size="2">--恢复指定时间点的前delete数据（将删除恢复时间点后面的数据）</font></span><br /></strong><font size="2"><span style="background-color: yellow">alter table xcp enable row movement;--启动的行移动功能</span><br /><span style="color: red; background-color: yellow">flashback </span><span style="background-color: yellow">table xcp </span><span style="color: red; background-color: yellow">to timestamp </span><span style="background-color: yellow">to_timestamp('2011-12-23 10:49:30,'yyyy-MM-dd hh24:mi:ss');</span><br />select count(1) from xcp;--22001<br /></font><span style="background-color: yellow"><strong><span style="background-color: yellow"><strong><br /><font size="2">--恢复指定时间点的前delete数据，并保留恢复时间点后面的数据</font></strong></span></strong></span><br /><font size="2"><span style="background-color: yellow">create table xcp2 as (select * from xcp t where t.createdtime&gt;to_timestamp('2011-12-23 10:49:30','yyyy-MM-dd hh24:mi:ss</span>'));<br />select * from xcp2;--临时表<br /><span style="background-color: yellow">alter table xcp enable row movement;<strong>--启动的行移动功能</strong></span><br /><span style="color: red; background-color: yellow">flashback </span><span style="background-color: yellow">table xcp </span><span style="color: red; background-color: yellow">to timestamp </span><span style="background-color: yellow">to_timestamp('2011-12-23 10:49:30,'yyyy-MM-dd hh24:mi:ss');</span><br />select count(1) from xcp;--22001<br /><font style="background-color: #ffff00">insert into xcp select * from xcp2 --将临时表的数据再插入到源表</font><br />select count(1) from xcp;--22002<br /></font><strong style="font-size: 18pt"><br /></strong><strong style="font-size: 18pt"><br />2.删除</strong><strong style="font-size: 18pt">闪回[10g+]<br /></strong><font size="2">&nbsp; &nbsp; 删除闪回为删除oracle 10G提供了一个数据库安全机制，当用户删除一个表时，oracle 10G会将该表放到回收站中，回收站中的对象一直会保留，直到用户决定永久删除它们或出现表空间的空间不足时才会被删除。回收站是一个虚拟容器，用于存储所有被删除的对象。数据字典user_tables中的列dropped表示被删除的表，查询方法如下：<br /><span style="background-color: yellow">select table_name,dropped from user_tables;</span><br />--设置数据库是否启用回收站<br /><span style="background-color: yellow">alert session set recyclebin = off;</span><br />--查询回收站对象<br /></font>
<div style="display: inline-block">
<div><font size="2"></font></div></div>
<div>
<div><span style="background-color: yellow">select * from recyclebin;</span></div>
<div><span style="background-color: yellow">select * from user_recyclebin;</span></div>
<div><span style="background-color: yellow">select * from dba_recyclebin;<br /><br /></span></div></div><br />drop table xcp;<br />select count(1) from xcp;--0<br /><strong><span style="background-color: yellow">--恢复drop的表</span><br /></strong><span style="color: red; background-color: yellow">flashback </span><span style="background-color: yellow">table xcp </span><span style="color: red; background-color: yellow">to before drop;</span><br />select count(1) from xcp;--22001 <br /><br />如果不知道原表名，可以直接使用回收站中的名称进行闪回..<br />
<div><span style="background-color: yellow">flashback table "BIN$JiXyAUO4R+u3qNVfQK/Kiw==$0" to before drop;</span></div>在回收的同时可以修改表名<br />
<div><span style="background-color: yellow">flashback table "</span> 
<div style="display: inline-block"></div><span style="background-color: yellow">BIN$JiXyAUO4R+u3qNVfQK/Kiw==$0</span><span style="background-color: yellow">" to before drop rename to xcp1;<br /></span></div><br />--真正删除一个表，而不进入回收站，可以在删除表时增加purge选项<span style="background-color: yellow"><br /></span><span style="background-color: yellow">drop table xcp1 purge;</span><br />--也可以从回收站永久性删除表<br /><span style="background-color: yellow">purge table xcp1;</span><br />--删除当前用户回收站<br /><span style="background-color: yellow">purge recyclebin</span><br />--删除全体用户在回收站的资源<br /><span style="background-color: yellow">purge dba_resyclebin<br /></span><strong style="font-size: 18pt"><br /><br /><br />3.数据库闪口 
<div style="display: inline-block"></div></strong><strong style="font-size: 18pt">[10g+]</strong><br /><font size="2">&nbsp;&nbsp;&nbsp;&nbsp;使用数据库闪回功能，可以使数据库回到过去某一状态，语法如下：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql: <span style="background-color: yellow">alter database flashback on;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql: <span style="background-color: yellow">flashback database to scn 46963;</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sql: <span style="background-color: yellow">flashback database to timestamp to_timestamp('2007-2-12 12:00:00','yyyy-MM-dd hh24:mi:ss'); </span></font><br /><br /> <img src ="http://www.blogjava.net/hewenkun/aggbug/368683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/hewenkun/" target="_blank">奇怪的杯子</a> 2012-01-18 09:40 <a href="http://www.blogjava.net/hewenkun/archive/2012/01/18/368683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>