他们说要我向你学习,
你不断挥舞着翅膀,从日出到
日落。或者低头伫立在冰寒的
风雪中,一动也不动。
你拍拍双翅得意地说:
“你只能模仿我们笨拙的体态,
无法窥见我们神奇的思想,
哈哈哈。”
什么是W3C标准
站点标准(Site Standard)不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构 (Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括 XHTML和XML;表现标准语言主要包括CSS;行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些 标准大部分由W3C起草和发布,也有一些是其他标准组织制订的标准,比如ECMA(European Computer Manufacturers Association)的ECMAScript标准。下面我们来简单了解一下这些标准。
结构标准语言
1、XML
XML是The Extensible Markup Language(可扩展标识语言)的简写。目前推荐遵循的是W3C于2000年10月 6日发布的XML1.0,参考W3C-XML。和HTML一样,XML同样来源于SGML,但XML是一种能定义其他语言的语言。 XML最初设计的目的是弥补HTML的不足,以强大的扩展性满足网络信息发布的需要,后来逐渐用于网络数据的转换和描述。关于XML的好处和技术范细节这里就不多说了,网上有很多资料,也有很多书籍可以参考。
2、XHTML
XHTML是The Extensible HyperText Markup Language(可扩展标识语言)的缩写。目前推荐遵循的是 W3C推荐XML1.0(参考 http://www.w3.org/TR/xhtml1 )。XML虽然数据转换能力强大,完全可以替代HTML,但面对成千上万已有的站点,直接采用XML还为时过早。因此,我们在HTML4.0的基础上,用XML的规则对其进行扩展,得到了XHTML。简单的说,建立XHTML的目的就是实现HTML向XML的过渡。
表现标准语言
CSS是Cascading Style Sheets(层叠样式表)的缩写。目前推荐遵循的是W3C于1998年5月12日推荐CSS2 (参考 http://www.w3.org/TR/CSS2/ )。W3C创建CSS标准的目的是以CSS取代HTML表格式布局、帧和其他表现的 语言。纯CSS布局与结构式XHTML相结合能帮助设计师分离外观与结构,使站点的访问及维护更加容易。
行为标准
1、DOM
DOM是Document Object Model(文档对象模型)的缩写。根据W3C DOM规范 (http://www.w3.org/DOM/), DOM是一种与浏览器、平台、语言的接口,使得你可以访问页面其他的标准组件。简单理解,DOM解决了Netscaped的Javascript和Microsoft的Jscript之间的冲突,给予web设计师和开发者一个标准的方法,让他们来访问他们站点中的数据、脚本表现层对像。
2、ECMAScript
ECMAScript是ECMA(European Computer Manufacturers Association)制定的标准脚本语言 (JavaScript)。目前推荐遵循的是ECMAScript 262( http://www.ecma.ch/ecma1/STAND/ECMA-262.htm )。
说心里话,火狐浏览器浏览网页的速度确实挺快,他先把网页中的图片都替换成占位符,将文字全部下载,然后再将占位符还原成图片,这样就大的提高了下载速度,可是,火狐对W3C标准卡得太严了,不会有丝毫的差别,像我的这个blog,样式定义在IE下载浏览一切正常,可是到了火狐里就不行了,部分样式不起作用。还有DHTML的一些代码,也不起作用。
看来,想做到各个浏览器通用,必须认真的贯彻执行W3C标准了啊。
如何符合w3c规范?
1、 确保所有的标签都使用小写字母
2、 确保所有的属性值都放在引号里
3、 确保所有成对标签出现的顺序、不成对的标签都用/>结束, ”/”和”>”之间不要有空格
其实这篇文章是那篇YAHOO!天气预报的后续,因为天气预报是利用XMLHTTP实现的,而XMLHTTP存在跨域访问的问题,在还没本篇文章之前,我直接通过静态的javascript来获取数据,在本机测试是正常的,但是放到服务器上就不行了,提示没有访问权限,百度了一下,原来已经有好多人遇到了这问题—–XMLHTTP跨域访问.不过以前我用ASP在服务器上是可以实现数据获取的,于是我就想是不是可以先利用ASP获取到数据,然后再用javascript获取ASP收到的数据呢,我试验了一下,结果是可行的.
!~
好高兴,这个天气预报终于是圆满的解决了.
附代码:
weather.asp页
Function ZQcnGet(url)
Set Retrieval = CreateObject(“Microsoft.XMLHTTP”)
With Retrieval
.Open “Get”, url, False, “”, “”
.Send
ZQcnGet = .ResponseBody
End With
Set Retrieval = Nothing
End Function
%>
weather.js页面
// #############################################
// function to emulate document.getElementById
function _$$(idname){
return fetch_object(idname);
}
function fetch_object(idname)
{
switch (cDOMtype)
{
case “std”:
{
return document.getElementById(idname);
}
break;
case “ie4″:
{
return document.all[idname];
}
break;
case “ns4″:
{
return document.layers[idname];
}
break;
}
}
function get_weather(){
if(_$$(‘weatherook2′)){
_$$(‘weatherook2′).innerHTML = “<marquee behavior=”slide”>The data is loading…</marquee>”;
var xml;
if (window.XMLHttpRequest) {
xml=new XMLHttpRequest();
}else if (window.ActiveXObject){
xml=new ActiveXObject(“Microsoft.XMLHTTP”);
}
xml.onreadystatechange = function(){
if(xml.readyState == 4){
if ( xml.status == 200 || xml.status == 304 ){
_$$(‘weatherook2′).innerHTML = get_content(xml.responseText,’<div class=”dt_d”>’,'<div class=”l2″>’);
}
}
}
xml.open(“GET” , uPath + “weather.asp” ,false);
xml.setRequestHeader(“If-Modified-Since”,”Tus, 9 Jan 2007 09:17:54 GMT”);
xml.send(“”);
}else{
alert(‘invalid page id’);
}
}
function get_content(str,starM1,starM2){
var starP,endP;
if(str){
starP = str.indexOf(starM1);
endP = str.indexOf(starM2)-1;
}
return str.substring(starP,endP);
}
window.onload = get_weather ;
weather.html页
<body>
<h3>YAHOO!天气预报</h3>
<div style=”width:130px”><div id=”weatherook2″ class=”map_cnt2″></div></div>
</body>
</html>
我的四条孔雀鱼,现在还剩两条了,
,好伤心啊!!
原来password也是sql 语句中的关键字,就这么一点小细节害我调试了一上午,真是郁闷啊.
先屏蔽了,有点影响打开的速度!