先屏蔽了,有点影响打开的速度!
可爱的熊猫烧香!!
最近流行,最近泛滥!
一个可爱的熊猫竟然整得机器死慢活慢的,CPU动不动就100%,而且好多可执行文件不能运行了,图标也换成了熊猫的头像,唉,你说这病毒怎么就选中了熊猫了呢,这可是国宝啊.
幸好,经过公司网络工程师和”江民”软件的帮助,系统算是保了,没有重装.
你说,这些软件高手不能把技术用到正道上吗,竟然把自己的快乐建立在别人疾苦之上,唉!高智商的人,并不一定高素质!
《云水谣》主题曲&when we were young
when we were young 当我们还年轻时
One day when we were young, 当我们还年轻,
one wonderful morning in May, 在美妙的五月早晨,
you told me you love me, 你曾说你爱我,
when we were young one day. 当我们还年轻。
Sweet songs of spring were sung, 唱起了春之歌,
and music was never so gay, 那音乐是多么动人,
you told me you love me, 你曾说你爱我,
when we were young one day. 当我们还年轻。
You told me you love me, 你对我多钟情,
and held me close to your heart, 啊,我们心心相印。
we laughed then,we cried then, 我们欢笑, 我们喊叫,
then came the time to part. 但离别时候来到。
Sweet songs of spring were sung, 唱起了春之歌,
and music was never so gay, 那音乐是多么动人,
you told me you love me, 你曾说你爱我,
when we were young one day. 当我们还年轻。
You told me you love me, 你对我多钟情,
and held me close to your heart, 啊,我们心心相印。
we laughed then,we cried then, 我们欢笑,我们喊叫,
then came the time to part. 但离别时候来到
When songs of spring are sung, 在五月的早晨,
remember that morning in May. 唱起了春天之歌。
Remember,you loved me, 别忘了,你爱我,
when we were young one day. 当我们还年轻。
当我们年轻时(奥地利/小施特劳斯/曲,汉默斯顿/填词)
其实这首歌是著名旧经典黑白片《翠堤春晓》《THE GREAT WALtZ》主题曲,讲述作曲家斯特劳斯生平的故事。
辞旧迎新
今天是2006年的最后一天了,感觉太快了,日子一天天的都消失了,只换来了满脸的皱纹.
祝自己在新的一年了,人财两旺!
祝所有的朋友工作顺利,心情舒畅!
祝天下父母身体健康,福寿无疆!
javascript用DOM解释XML[转]
在DOM眼中,HTML跟XML一样是一种树形结构的文档,<html>是根(root)节点,<head>、<title>、<body>是<html>的子(children)节点,互相之间是兄弟(sibling)节点;<body>下面才是子节点<table>、<span>、<p>等等。如下图:
这个是不是跟XML的结构有点相似呢。不同的是,HTML文档的树形主要包含表示元素、标记的节点和表示文本串的节点。
HTML文档的节点
DOM下,HTML文档各个节点被视为各种类型的Node对象。每个Node对象都有自己的属性和方法,利用这些属性和方法可以遍历整个文档树。由于HTML文档的复杂性,DOM定义了nodeType来表示节点的类型。这里列出Node常用的几种节点类型:
接口
nodeType常量
nodeType值
备注
Element
Node.ELEMENT_NODE
1
元素节点
Text
Node.TEXT_NODE
3
文本节点
Document
Node.DOCUMENT_NODE
9
document
Comment
Node.COMMENT_NODE
8
注释的文本
DocumentFragment
Node.DOCUMENT_FRAGMENT_NODE
11
document片断
Attr
Node.ATTRIBUTE_NODE
2
节点属性
DOM树的根节点是个Document对象,该对象的documentElement属性引用表示文档根元素的Element对象(对于HTML文档,这个就是<html>标记)。Javascript操作HTML文档的时候,document即指向整个文档,<body>、<table>等节点类型即为Element。Comment类型的节点则是指文档的注释。具体节点类型的含义,请参考《Javascript权威指南》,在此不赘述。
Document定义的方法大多数是生产型方法,主要用于创建可以插入文档中的各种类型的节点。常用的Document方法有:
方法
描述
createAttribute()
用指定的名字创建新的Attr节点。
createComment()
用指定的字符串创建新的Comment节点。
createElement()
用指定的标记名创建新的Element节点。
createTextNode()
用指定的文本创建新的TextNode节点。
getElementById()
返回文档中具有指定id属性的Element节点。
getElementsByTagName()
返回文档中具有指定标记名的所有Element节点。
对于Element节点,可以通过调用getAttribute()、setAttribute()、removeAttribute()方法来查询、设置或者删除一个Element节点的性质,比如
| 第一行 |
| 第二行 |
| 第三行 |
| 第四行 |
例子5 — sample4_3.htm:
正如我们在Node节点介绍部分所指出的那样,appendChild()、replaceChild()、removeChild()、insertBefore()方法会立即改变文档的结构。下面的例子包含两个表格,我们试着把表格二的内容替换表格一的内容。
function replaceContent() {
var table1 = document.getElementsByTagName("table")[0];
var table2 = document.getElementsByTagName("table")[1];
var kid1 = table1.firstChild.firstChild.firstChild; //定位到
var kid2 = table2.firstChild.firstChild.firstChild; //定位到
var repKid = kid2.firstChild; //定位到表格二
try {
//用表格二的单元格内容替换表格一的单元格内容,表格二变成没有单元格内容
kid1.replaceChild(repKid,kid1.firstChild);
//下面注释如果开放,将出现object error,因为表格二已经被改变
//kid2.replaceChild(kid1.firstChild,kid2.firstChild);
}catch(e){
alert(e);
}
}
| 表格一 |
| 表格二 |
注意,当执行kid1.replaceChild(repKid,kid1.firstChild);的时候,table2的子节点已经被转移到 table1了,table2已经没有子节点,不能再调用table2的子节点。看看代码的注释,试着运行一下,应该就知道文档是怎么改变的了。
D、往文档添加新内容
在学会遍历、搜索、修改文档之后,我们现在试着网文档添加新的内容。其实没有什么新意,只是利用我们上述提到的Node的属性和方法而已,还是操作<table>标记的内容。有新意的是,我们要实现一个留言簿。是的,留言簿,你可以往里面留言,只是不能刷新噢。
例子6 – sample5_1.htm:
function insertStr() {
var f = document.form1;
var value = f.str.value;
if(value!="") {
// 从最终的TextNode节点开始,慢慢形成
var text = document.createTextNode(value); //新建一个TextNode节点
var td = document.createElement("td"); //新建一个td类型的Element节点
var tr = document.createElement("tr"); //新建一个tr类型的Element节点
var tbody = document.createElement("tbody"); //新建一个tbody类型的Element节点
td.appendChild(text); //将节点text加入td中
tr.appendChild(td); //将节点td加入tr中
tbody.appendChild(tr); //将节点tr加入tbody中
var parNode = document.getElementById("table1"); //定位到table上
parNode.insertBefore(tbody,parNode.firstChild); //将节点tbody插入到节点顶部
//parNode.appendChild(tbody); //将节点tbody加入节点尾部
}
}
| 网友留言列表: |
我们之前说过,<table>的子节点是<tbody>,<tbody>的子节点才是<tr>,<tr>是<td>的父节点,最后<td>内部的TextNode节点。所以,往<table>增加单元格行要逐级形成,就像往树里面添加一个枝桠一样,要有叶子有径。看看,这个留言簿是不是很简单啊。这个例子同时也演示了往<table>表格标记里面增加内容的另一种方法。
E使用DOM操作XML文档
在数据表示方面,XML文档更加结构化。DOM在支持HTML的基础上提供了一系列的API,支持针对XML的访问和操作。利用这些API,我们可以从XML中提取信息,动态的创建这些信息的HTML呈现文档。处理XML文档,通常遵循"加载XML文档à提取信息à加工信息à创建HTML文档"的过程。下面的例子演示了如何加载并处理XML文档。
这个例子包含两个JS函数。loadXML()负责加载XML文档,其中既包含加载XML文档的2级DOM代码,又有实现同样操作的 Microsoft专有API代码。需要提醒注意的是,文档加载过程不是瞬间完成的,所以对loadXML()的调用将在加载文档完成之前返回。因此,需要传递给loadXML()一个引用,以便文档加载完成后调用。
例子中的另外一个函数makeTable(),则在XML文档加载完毕之后,使用最后前介绍过的DOM应用编程接口读取XML文档信息,并利用这些信息形成一个新的table表格。
例子7 — sample6_1.htm:
function loadXML(handler) {
var url = "employees.xml";
if(document.implementation&&document.implementation.createDocument) {
var xmldoc = document.implementation.createDocument("", "", null);
xmldoc.onload = handler(xmldoc, url);
xmldoc.load(url);
}
else if(window.ActiveXObject) {
var xmldoc = new ActiveXObject("Microsoft.XMLDOM");
xmldoc.onreadystatechange = function() {
if(xmldoc.readyState == 4) handler(xmldoc, url);
}
xmldoc.load(url);
}
}
function makeTable(xmldoc, url) {
var table = document.createElement("table");
table.setAttribute("border","1");
table.setAttribute("width","600");
table.setAttribute("class","tab-content");
document.body.appendChild(table);
var caption = "Employee Data from " + url;
table.createCaption().appendChild(document.createTextNode(caption));
var header = table.createTHead();
var headerrow = header.insertRow(0);
headerrow.insertCell(0).appendChild(document.createTextNode("姓名"));
headerrow.insertCell(1).appendChild(document.createTextNode("职业"));
headerrow.insertCell(2).appendChild(document.createTextNode("工资"));
var employees = xmldoc.getElementsByTagName("employee");
for(var i=0;i var e = employees[i]; var name = e.getAttribute("name"); var job = e.getElementsByTagName("job")[0].firstChild.data; var salary = e.getElementsByTagName("salary")[0].firstChild.data; var row = table.insertRow(i+1); row.insertCell(0).appendChild(document.createTextNode(name)); row.insertCell(1).appendChild(document.createTextNode(job)); row.insertCell(2).appendChild(document.createTextNode(salary)); } }
供读取调用的XML文档 – employees.xml:
处理XML文档
脱离XML文档的AJAX是不完整的。在本部分未完成之前,有读者说AJAX改名叫AJAH(H应该代表HTML吧)比较合适。应该承认,XML文档在数据的结构化表示以及接口对接上有先天的优势,但也不是所有的数据都应该用XML表示。有些时候单纯的文本表示可能会更合适。下面先举个AJAX处理返回XML文档的例子再讨论什么时候使用XML。
7.5.1、处理返回的XML
例子8 — sample7_1.htm:
在这个例子中,我们采用之前确定的AJAX开发框架,稍微修改一下body内容和processRequest的相应方式,将先前的employees.xml的内容读取出来并显示。
body的内容如下:
processRequest()方法修改如下:
// 处理返回信息的函数
function processRequest() {
if (http_request.readyState == 4) { // 判断对象状态
if (http_request.status == 200) { // 信息已经成功返回,开始处理信息
var returnObj = http_request.responseXML;
var xmlobj = http_request.responseXML;
var employees = xmlobj.getElementsByTagName("employee");
var feedbackStr = "";
for(var i=0;i var employee = employees[i]; feedbackStr += "员工:" + employee.getAttribute("name"); feedbackStr += " 职位:" + employee.getElementsByTagName("job")[0].firstChild.data; feedbackStr += " 工资:" + employee.getElementsByTagName("salary")[0].firstChild.data; feedbackStr += "rn"; } alert(feedbackStr); } else { //页面不正常 alert("您所请求的页面有异常。"); } } } 运行一下,看来效果还不错: 7.5.2、选择合适的XML生成方式 现在的web应用程序往往采用了MVC三层剥离的设计方式。XML作为一种数据保存、呈现、交互的文档,其数据往往是动态生成的,通常由 JavaBean转换过来。由JavaBean转换成XML文档的方式有好几种,选择合适的转换方式往往能达到事半功倍的效果。下面介绍两种常用的方式,以便需要的时候根据情况取舍。 A、类自行序列化成XML 类自行序列化成XML即每个类都实现自己的toXML()方法,选择合适的API、适当的XML结构、尽量便捷的生成逻辑快速生成相应的XML文档。显然,这种方式必须要求每个类编写专门的XML生成代码,每个类只能调用自己的toXML()方法。应用诸如JDOM等一些现成的API,可以减少不少开发投入。例子9是一个利用JDOM的API形成的toXML()方法。 例子9 — toXml() 的 JDOM 实现 — Employ类的toXml()方法: Element employee = new Element("employee"); Employee.setAttribute("name",name); Element jobE = new Element("job").addContent(job); employee.setContent(jobE); Element salaryE = new Element("salary").addContent(salary); employee.setContent(salaryE); return employee; } JDOM提供了现成的API,使得序列化成XML的工作更加简单,我们只需要把toXML()外面包装一个Document,然后使用 XMLOutputter把文档写入servlet就可以了。toXml()允许递归调用其子类的toXML()方法,以便生成包含子图的XML文档。 使用类自行序列化成XML的方式,要每个类都实现自己的toXML()方法,而且存在数据模型与视图耦合的问题,即要么为每个可能的视图编写独立的toXML()方法,要么心甘情愿接收冗余的数据,一旦数据结构或者文档发生改变,toXML()就要做必要的修改。 B、页面模板生成XML方式 一般的,可以采用通用的页面模板技术来生成XML文档,这个XML文档可以符合任何需要的数据模型,供AJAX灵活的调用。另外,模板可以采用任何标记语言编写,提高工作效率。下面是一个采用Struts标签库编写的XML文档,输出之前提到的employees.xml: Sample8_2.jsp: <%@ page import="java.util.Collection,java.util.ArrayList"%> <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %> <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%> <% Employee em1 = new Employee(); em1.setName("J.Doe"); em1.setJob("Programmer"); em1.setSalary("32768"); Employee em2 = new Employee(); em2.setName("A.Baker"); em2.setJob("Sales"); em2.setSalary("70000"); Employee em3 = new Employee(); em3.setName("Big Cheese"); em3.setJob("CEO"); em3.setSalary("100000"); Collection employees = new ArrayList(); employees.add(em1); employees.add(em2); employees.add(em3); pageContext.setAttribute("employees",employees); %> 采用页面模板生成XML方式,需要为每个需要的的数据模型建立一个对立的JSP文件,用来生成符合规范的XML文档,而不能仅仅在类的toXML()方法中组织对象图来实现。不过,倒是可以更加方便的确保标记匹配、元素和属性的顺序正确以及XML实体正确转义。 参考资料中Philip McCarthy的文章还描述了一种Javascript对象标注的生成方式,本文在此不赘述。有兴趣的读者可以自行查看了解。 7.5.3、如何在使用XML还是普通文本间权衡 使用XML文档确实有其方便之处。不过XML文档的某些问题倒是要考虑一下,比如说延迟,即服务器不能立即解析XML文档成为DOM模型。这个问题在一定程度上会影响AJAX要求的快速反应能力。另外,某些情况下我们并不需要使用XML来表示数据,比如说数据足够简单成只有一个字符串而已。就好像我们之前提到的数据校验和级联菜单的例子一样。所以,个人认为在下面这些情况下可以考虑使用XML来作为数据表示的介质: l 数据比较复杂,需要用XML的结构化方式来表示 l 不用考虑带宽和处理效率支出 l 与系统其他API或者其他系统交互,作为一种数据中转中介 l 需要特定各式的输出视图而文本无法表示的 总之,要认真评估两种表示方式的表示成本和效率,选择合适的合理的表示方式。 我认为这篇文章很有用! <?xml version=”1.0″ encoding=”UTF-8″?> 2.读此xml的javascript例子: 今天整了个Flash音乐播放器,感觉不错,界面挺简捷,操作挺方便,可以动态修改播放列表,还支持界面的背景色调整,有两种显示模式:单个文件和多个文件. 最近不知道为什么我的U盘双击打不开了,而是让你选择打开方式,右键U盘然后选"打开"却可以,郁闷,百度了一下,原来是一个叫AutoRun.inf的病毒惹的祸!有一个专杀工具是用DOS命令写的批处理文件. 文件不大,却立竿见影,U盘双击可以打开了. 以前用过的,不过这次想用,整了半天才整出来,费劲啊,还是写下来吧. 然后在XXX.asp页面的任何一个位置,最好是尾部,写上如下代码: 好了,简单吧,就这么几句.你试试,我在IE6,IE7下测试正常. 他的真名几乎没人知道,也没有人知道能在哪里找到他。他很神秘,因为他不接受媒体采访。他很另类,因为他敢于涂上最鲜亮的口红。他很有魅力,只要他站在舞台上,只要他开口唱歌,你就无法不去注视他。他的眼神,如同鬼魅一般,瞬间就让你如中了咒语般失去抵抗能力。
public Element toXml() {
<%@ page contentType="application/xml; charset=gb2312" import="Employee"%>用javascript操作xml[转]
============================================
1.xml文件如下:
<zip>
<city>
mycity</city>
<state>mystate</state>
</zip>Flash音乐播放器
感觉不错,我满意!
Click Here To Downloadautorun.inf专杀工具下载
如何让网页Iframe自适应高度和宽度
首先,你需要在页面里写上iframe,然后定义ID,像这样:
parent.document.all(“框架ID名”).style.width=document.body.scrollWidth;俄罗斯”海豚音”~Vitas
他被认为是alien,他自己从来不提Vitas,他特别喜欢鱼,而且令人佩服的是,他是个服装设计师。
其实我也只是从网上找过VITAS的一支MV看___BUMAC.是VITAS在一场演唱会上的表演吧.VITAS一身黑衣,围着一条红围巾在台上自如的演唱.为他伴奏和伴唱的人也全着黑衣且以黑纱蒙面.轻吟浅唱的VITAS唱到高音处伴唱者们刚表现为为音乐癫狂状,就像听到希腊神话中美杜莎的声音.曾经看过VITAS的介绍,说他住在地下室里,不喜欢阳光,作息时间像吸血鬼一样,每到傍晚才出来寻找食物,平时都在地下室里创作.有人也说他的声音高得不像正常人的声音,于是说他是欧洲中世纪一度流行的阉伶的再生.我觉得这是对他的一种攻击.因为阉伶的显著特征是已经趋向女性,但是VITAS只是声音很高可还是有喉结的.(扯远了,不小心八卦起来了.)
目前VITAS只有一部分作品在网上流传,搞不懂为什么没有人引进呢?据说是因为VITAS演唱会的风格太诡异,没有通过国家什么部门的认可.呜~~好可惜.但是听VITAS的声音真是让人很惊奇.沙皇也多次如他入皇宫演唱.
虽然听不懂歌词,但是VITAS在演唱中那似有魅惑的表情与声音还是能将人深深的吸引.个人很喜欢他的风格,以黑纱蒙面的演奏者和伴唱者也很搭他的风格.在演唱开始前VITAS在台上似有意的漫步,脸上绽出得意的表情,但演唱开始时VITAS则认真的开始唱起来,他那迷人的眼神在暂停时若有所思的样子更是说不出的魅惑.高音时,VITAS的手也扬起来,似乎人也随着声音飞上了高空.
VITAS是上帝派来告诉我们世界上还有奇迹般的声音的使者.