随笔:107 文章:0 评论:30 引用:2
博客园 首页 发新随笔
发新文章 联系 订阅订阅管理

2012年5月15日

 jQuery 1.0(2006年8月):该库的第一个稳定版本,已经具有了对CSS选择符、事件处理和AJAX交互的稳健支持。

  jQuery 1.1(2007年1月):这一版大幅简化了API。许多较少使用的方法被合并,减少了需要掌握和解释的方法数量。

  jQuery 1.1.3(2007年7月):这次小版本变化包含了对jQuery选择符引擎执行速度的显著提升。从这个版本开始,jQuery的性能达到了Prototype、Mootools以及Dojo等同类JavaScript库的水平。

  jQuery 1.2(2007年9月):这一版去掉了对XPath选择符的支持,原因是相对于CSS语法它已经变得多余了。这一版能够支持对效果的更灵活定制,而且借助新增的命名空间事件,也使插件开发变得更容易。

  jQuery UI(2007年9月):这个新的插件套件是作为曾经流行但已过时的Interface插件的替代项目而发布的。jQuery UI中包含大量预定义好的部件(widget),以及一组用于构建高级元素(例如可拖放的界面元素)的工具。

  jQuery 1.2.6(2008年5月):这一版主要是将Brandon Aaron开发的流行的Dimensions插件的功能移植到了核心库中。

  jQuery 1.3(2009年1月):这一版使用了全新的选择符引擎Sizzle,库的性能也因此有了极大提升。这一版正式支持事件委托特性。

  jQuery 1.3.2(2009年2月):这次小版本升级进一步提升了库的性能,例如改进了:visible/:hidden选择符、.height()/.width()方法的底层处理机制。另外,也支持查询的元素按文档顺序返回。

  jQuery 1.4(2010年1月14号对)代码库进行了内部重写组织,开始建立一些风格规范。老的core.js文件被分为attribute.js, css.js, data.js, manipulation.js, traversing.js和queue.js;CSS和attribute的逻辑分离。

      jQuery 1.5(2011年1月31日):该版本修复了83个bug,解决了460个问题。重大改进有:重写了Ajax模块;新增延缓对像(Deferred Objects);jQuery替身——jQuery.sub();增强了遍历相邻节点的性能;jQuery开发团队构建系统的改进。

     jQuery 1.6(2011年5月3日):重写了Attribute 模块和大量的性能改进。

     1.6新版本中的部分重要改进:

  • attr()、val()和data()方法有了更好的性能;
  • 在attr()方法中支持Boolean属性;
  • 添加了钩子函数,允许对attr()和val()方法进行扩展;
  • map()方法添加了对对象的支持(将JavaScript对象的属性映射到函数)
  • 允许使用相对值(“+=”,“-=”)更新CSS;
  • 添加了deferred.always(), deferred.pipe()方法,减少了代码量,提高了代码易读性;
  • 同步动画 – 现在所有动画都同步到相同的时间间隔. 使用新的浏览器功能,动画也更顺畅;
  • find(),closest()和is()可接收所有的DOM元素和JQuery对象作为参数。

不幸的是,其中包含了部分破坏性的变更,团队已经在官方更新中用单独的章节强调了它们:

变更 JQuery 1.5.2 示例 JQuery 1.6 示例
data()方法使用破折号创建驼峰格式。
data-max-value="15" 创建{ max-value: 15 } data-max-value="15" 创建{ maxValue: 15 }
区分了Property与Attribute。attr()方法现在不能用于获取preperty的值。为了处理property的值,引入了prop()和removeProp()方法。 如果复选框被选中,checkbox.attr("checked")返回(true)



 
checkbox.attr("checked")返回空字符串。
要判别是否选中,需在事件处理程序中使用
$(this).prop("checked")或
$(this).is(":checked")。

不出意外的话,第二项变更将会影响到现有打算升级到1.6的那些项目。

 

另附:

  1.4重要新特性:

  •常用方法的性能大幅提升:重写了大部分较早期的函数;

  •更容易使用的设置函数(setter function):为所有对象新增了许多易用的设置函数;

  •对Ajax的改进:引入了许多Ajax和JSON处理方面的更新,包括HTML5元素的序列化;

  •attribute(改进了.attr()的性能)、jQuery()核心函数、CSS(.css()性能有两倍提升)、特效和事件、DOM操作等也有显著改进

 JQuery1.42最新版本介绍

  jQuer1.4.2版本修复了1.4版本的一些错误和优化了一些不错的改进,速度比1.4.1版本又提升

  

  

了一倍,该版本对性能做了一些改进,同时增加了一些api ( .delegate() and .undelegate(). ),右图是JQuery各个版本的性能比较:

  jquery1.42新特性:

  加了两个新方法:.delegate() 和.undelegate(). 是对.live() and .die() 的补充. 这两个方法对特定的事件的起到简化。

  范例:

  $("table").delegate("td", "hover", function(){ $(this).toggleClass("hover"); });

  等于使用 .live():

  $("table").each(function(){ $("td", this).live("hover", function(){ $(this).toggleClass("hover"); }); });

  另外,以下代码中,.live() 基本上等同于 .delegate().

  $(document).delegate("td", "hover", function(){ $(this).toggleClass("hover"); });

  变更

  大量代码进行了重写, 提升了性能及修正了一些长期存在的问题。

  提升性能

  每次开发新的jquery版本,我们都努力去持续优化性能,以保证你能用到最高性能的javascript代码。

  在Taskspeed benchmark 的测试中,1.4.2比1.4.1快1倍,比1.3.2快2倍。

  主要是在下面4个方面进行了提升:

  .bind() 和 .unbind().

  .empty(), .remove(), 和 .html().

  插入单个DOM 节点到 document.

  $("body")

  在测试用例中,比较多的用到了 $("body"), .bind(), .unbind()方法,因此测试结果提升比较明显。

  v重写事件

  event handlers 不再作为一个对象属性保存在 jQuery的内部对象里。现在是保存在一个内部的对象数组里。v 现在可以通过调用.data("events") , 将会返回一个对象包含的所有事件类型。

  现在可以使用不同的数据、命名空间、事件类型绑定在同一个handler

  在一个handler清除自己之后,事件handler会继续执行

  不用关联数据或者命名空间到事件handler

  不用再使用代理方法

  事件执行的顺序在所有浏览器中得到保证,Google Chrome 中出现的对象循环逻辑问题已经得到解决.

posted @ 2012-05-15 16:17 Lavenders 阅读(84) 评论(0) 编辑

2012年4月13日

不带边框的iframe因为能和网页无缝的结合从而不刷新页面的情况下更新页面的部分数据成为可能,可是 iframe的大小却不像层那样可以“伸缩自如”,所以带来了使用上的麻烦,给iframe设置高度的时候多了也不好,少了更是不行,现在,让我来告诉大 家一种iframe动态调整高度的方法,主要是以下JS函数:

程序代码

function SetWinHeight(obj)

{

var win=obj;

if (document.getElementById)
{

if (win && !window.opera)

{

if (win.contentDocument && win.contentDocument.body.offsetHeight)
  
win.height = win.contentDocument.body.offsetHeight;
   
else if(win.Document && win.Document.body.scrollHeight)
  
win.height = win.Document.body.scrollHeight;

}

}

}

最后,加入iframe,不能丢掉onload属性,当然了,id也必须也函数中的win匹配

程序代码

<iframe width="778" align="center" height="200" id="win" name="win" onload="Javascript:SetWinHeight(this)" frameborder="0" scrolling="no"></iframe>

另一种情况的iframe解决方案(超简单)

重要提示:src=中你必须填写的网页地址,一定要和本页面在同一个站点上,否则,会抱错,说“拒绝访问!”(实际上这是因为Js的跨域问题导致拒绝访问的)

之前自己也碰到过这个问题,为了得到答案去网上搜索,发现有不少人也遇到了这样的问题,现在就把解决方法共享一下

1、建立一个bottom.js的文件,然后输入下面的代码(只有两行哦)

parent.document.all("框架ID名").style.height=document.body.scrollHeight;

parent.document.all("框架ID名").style.width=document.body.scrollWidth;

这里的 框架ID名 就是Iframe的ID,比如:

<IFRAME id="框架ID名" name="left" frameBorder=0 scrolling=no src="XXX.asp" width="100%"></IFRAME>

2、给你网站里所有的被包含文件里面每个都加入

<script language = "JavaScript" src = "bottom.js"/></script>

3、OK,收工!

在WINXP、IE6下面测试通过。很简单吧!

实现 iframe 的自适应高度

实现 iframe 的自适应高度,能够随着页面的长度自动的适应以免除页面和 iframe 同时出现滚动条的现象。

程序代码

<script type="text/javascript">

//** iframe自动适应页面 **//

//输入你希望根据页面高度自动调整高度的iframe的名称的列表

//用逗号把每个iframe的ID分隔. 例如: ["myframe1", "myframe2"],可以只有一个窗体,则不用逗号。

//定义iframe的ID

var iframeids=["test"]

//如果用户的浏览器不支持iframe是否将iframe隐藏 yes 表示隐藏,no表示不隐藏

var iframehide="yes"

function dyniframesize()

{

var dyniframe=new Array()

for (i=0; i<iframeids.length; i++)

{

if (document.getElementById)

{

//自动调整iframe高度

dyniframe[dyniframe.length] = document.getElementById(iframeids);

if (dyniframe && !window.opera)

{

dyniframe.style.display="block"

if (dyniframe.contentDocument && dyniframe.contentDocument.body.offsetHeight) //如果用户的浏览器是NetScape
dyniframe.height = dyniframe.contentDocument.body.offsetHeight;

else if (dyniframe.Document && dyniframe.Document.body.scrollHeight) //如果用户的浏览器是IE

dyniframe.height = dyniframe.Document.body.scrollHeight;

}

}

//根据设定的参数来处理不支持iframe的浏览器的显示问题

if ((document.all || document.getElementById) && iframehide=="no")

{

var tempobj=document.all? document.all[iframeids] : document.getElementById(iframeids)

tempobj.style.display="block"

}

}

}

if (window.addEventListener)

window.addEventListener("load", dyniframesize, false)

else if (window.attachEvent)

window.attachEvent("onload", dyniframesize)

else

window.onload=dyniframesize

</script>

posted @ 2012-04-13 11:35 Lavenders 阅读(7) 评论(0) 编辑

2012年4月9日

一、framespacing和border属性

我们知道,使用border属性是设置边框的宽度的。参考示例:HTML4.01教程:窗口框架设置窗口边框的粗细示例

同样,使用framespacing属性也是设置边框的宽度的。参考使用framespacing属性设置框架集边框宽度

不论单独使用哪一个属性,显示的效果都是一样的。

而在Dreamweaver中,一旦在“属性”栏中设置了边框的宽度,则会同时使用这两个属性来表示。代码如下:

<html>
<head>
<title>框架集中framespacing、border和frameborder属性的关系示例-baike369.com</title>
</head>
  <frameset cols="40%,*">
  <frame src="append/Frame_a.html" />
    <frameset rows="40%,*" framespacing="50" border="50">
    <frame src="append/Frame_b.html" />
    <frame src="append/Frame_c.html" />
    </frameset>
  </frameset>
  <noframes>
  <body>您的浏览器无法处理框架!</body>
  </noframes>
</html>

查看代码效果:框架集中framespacing、border和frameborder属性的关系示例

同时使用这两个属性和单独使用任一个属性,显示的效果也是一样的。

在这里,需要注意:

  • 如果framespacing属性的值不变,而改变borer属性值的大小,显示的效果不变。
  • 如果border属性的值不变,而改变framespacing属性值的大小,显示的效果则以framespacing的大小为准。

因此,在框架集中,需要修改边框的宽度时,应该以framespacing属性为主。

二、frameborder属性与framespacing和border属性

下面来讨论frameborder属性与framespacing和border属性的关系。

关于frameborder属性,请参考隐藏窗口边框。当frameborder="1"时,表示显示框架的边框,因为它是默认值,所以不必设置。而当frameborder="0"时,会出现两种情况:

这里以同时设置framespacing和border属性为例。当然,单独使用任一个属性,效果也是一样的。

1. 当framespacing和border属性设置为一个大于0的数时

会出现下面的情况:

<frameset cols="40%,*">
<frame src="append/Frame_a.html" />
<frameset rows="40%,*" framespacing="80" border="80" frameborder="0">
<frame src="append/Frame_b.html" />
<frame src="append/Frame_c.html" />
</frameset>
</frameset>

查看代码效果:框架集中framespacing、border和frameborder属性的关系示例(二)

此时,虽然不显示框架的边框,但是边框占据的空间还是存在的。它也会影响网页的布局。

2. 当framespacing和border属性设置为0时

会出现下面的情况:

<frameset cols="40%,*">
<frame src="append/Frame_a.html" />
<frameset rows="40%,*" framespacing="0" border="0" frameborder="0">
<frame src="append/Frame_b.html" />
<frame src="append/Frame_c.html" />
</frameset>
</frameset>

查看代码效果:框架集中framespacing、border和frameborder属性的关系示例(三)

我们发现,Frame_b.html和Frame_c.html这两个网页之间的边框消失不见了,看上去就像一个网页一样。

请分清这两种情况,然后在网页制作中,根据具体的情况进行选择!

posted @ 2012-04-09 13:25 Lavenders 阅读(8) 评论(0) 编辑

2012年3月7日

引言

  您的个人网站即使做得再精彩,在“浩瀚如海”的网络空间中,也如一叶扁舟不易为人发现,如何推广
个人网站,人们首先想到的方法无外乎以下几种:
  
  ● 在搜索引擎中登录自己的个人网站
  
  ● 在知名网站加入你个人网站的链接


  ● 在论坛中发帖子宣传你的个人网站


  很多人却忽视了HTML标签META的强大功效,一个好的META标签设计可以大大提高你的个人网站被搜索到的可能性,有兴趣吗,谁我来重新认识一下META标签吧!


  META标签是HTML语言HEAD区的一个辅助性标签,它位于HTML文档头部的<HEAD>标记和<TITLE>标记之间,它提供用户不可见的信息。meta标签通常用来为搜索引擎robots定义页面主题,或者是定义用户浏览器上的cookie;它可以用于鉴别作者,设定页面格式,标注内容提要和关键字;还可以设置页面使其可以根据你定义的时间间隔刷新自己,以及设置RASC内容等级,等等。

 

  详细介绍


  下面介绍一些有关 标记的例子及解释。


  META标签分两大部分:HTTP标题信息(HTTP-EQUIV)和页面描述信息(NAME)。

 

  ★HTTP-EQUIV


  HTTP-EQUIV类似于HTTP的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容。常用的HTTP-EQUIV类型有:

 

  1、Content-Type和Content-Language (显示字符集的设定)


  说明:设定页面使用的字符集,用以说明主页制作所使用的文字已经语言,浏览器会根据此来调用相应的字符集显示page内容。


  用法:<Meta http-equiv="Content-Type" Content="text/html; Charset=gb2312">
      <Meta http-equiv="Content-Language" Content="zh-CN">


  注意: 该META标签定义了HTML页面所使用的字符集为GB2132,就是国标汉字码。如果将其中的“charset=GB2312”替换成“BIG5”,则该页面所用的字符集就是繁体中文Big5码。当你浏览一些国外的站点时,IE浏览器会提示你要正确显示该页面需要下载xx语支持。这个功能就是通过读取HTML页面META标签的Content-Type属性而得知需要使用哪种字符集显示该页面的。如果系统里没有装相应的字符集,则IE就提示下载。其他的语言也对应不同的charset,比如日文的字符集是“iso-2022-jp ”,韩文的是“ks_c_5601”。
      
  Content-Type的Content还可以是:text/xml等文档类型;
  Charset选项:ISO-8859-1(英文)、BIG5、UTF-8、SHIFT-Jis、Euc、Koi8-2、us-ascii, x-mac-roman, iso-8859-2, x-mac-ce, iso-2022-jp, x-sjis, x-euc-jp,euc-kr, iso-2022-kr, gb2312, gb_2312-80, x-euc-tw, x-cns11643-1,x-cns11643-2等字符集;Content-Language的Content还可以是:EN、FR等语言代码。


  2、Refresh (刷新)


   说明:让网页多长时间(秒)刷新自己,或在多长时间后让网页自动链接到其它网页。
   用法:<Meta http-equiv="Refresh" Content="30">
      <Meta http-equiv="Refresh" Content="5; Url=http://www.xia8.net">
   注意:其中的5是指停留5秒钟后自动刷新到URL网址。


  3、Expires (期限)


   说明:指定网页在缓存中的过期时间,一旦网页过期,必须到服务器上重新调阅。
   用法:<Meta http-equiv="Expires" Content="0">
      <Meta http-equiv="Expires" Content="Wed, 26 Feb 1997 08:21:57 GMT">
   注意:必须使用GMT的时间格式,或直接设为0(数字表示多少时间后过期)。


  4、Pragma (cach模式)


   说明:禁止浏览器从本地机的缓存中调阅页面内容。
   用法:<Meta http-equiv="Pragma" Content="No-cach">
   注意:网页不保存在缓存中,每次访问都刷新页面。这样设定,访问者将无法脱机浏览。


  5、Set-Cookie (cookie设定)


  说明:浏览器访问某个页面时会将它存在缓存中,下次再次访问时就可从缓存中读取,以提高速度。当你希望访问者每次都刷新你广告的图标,或每次都刷新你的计数器,就要禁用缓存了。通常HTML文件没有必要禁用缓存,对于ASP等页面,就可以使用禁用缓存,因为每次看到的页面都是在服务器动态生成的,缓存就失去意义。如果网页过期,那么存盘的cookie将被删除。
   用法:<Meta http-equiv="Set-Cookie" Content="cookievalue=xxx; expires=Wednesday,
       21-Oct-98 16:14:21 GMT; path=/">
   注意:必须使用GMT的时间格式。


  6、Window-target (显示窗口的设定)


   说明:强制页面在当前窗口以独立页面显示。
   用法:<Meta http-equiv="Widow-target" Content="_top">
   注意:这个属性是用来防止别人在框架里调用你的页面。Content选项:_blank、_top、_self、_parent。


  7、Pics-label (网页RSAC等级评定)
   说明:在IE的Internet选项中有一项内容设置,可以防止浏览一些受限制的网站,而网站的限制级
      别就是通过该参数来设置的。
   用法:<META http-equiv="Pics-label" Contect=
               "(PICS-1.1'http://www.rsac.org/ratingsv01.html'
       I gen comment 'RSACi North America Sever' by 'inet@microsoft.com'
       for 'http://www.microsoft.com' on '1997.06.30T14:21-0500' r(n0 s0 v0 l0))">


   注意:不要将级别设置的太高。RSAC的评估系统提供了一种用来评价Web站点内容的标准。用户可以设置Microsoft Internet Explorer(IE3.0以上)来排除包含有色情和暴力内容的站点。上面这个例子中的HTML取自Microsoft的主页。代码中的(n 0 s 0 v 0 l 0)表示该站点不包含不健康内容。级别的评定是由RSAC,即美国娱乐委员会的评级机构评定的,如果你想进一步了解RSAC评估系统的等级内容,或者你需要评价自己的网站,可以访问RSAC的站点:http://www.rsac.org/


  8、Page-Enter、Page-Exit (进入与退出)


   说明:这个是页面被载入和调出时的一些特效。
   用法:<Meta http-equiv="Page-Enter" Content="blendTrans(Duration=0.5)">
      <Meta http-equiv="Page-Exit" Content="blendTrans(Duration=0.5)">
   注意:blendTrans是动态滤镜的一种,产生渐隐效果。另一种动态滤镜RevealTrans也可以用于页面进入与退出效果:


      <Meta http-equiv="Page-Enter" Content="revealTrans(duration=x, transition=y)">
      <Meta http-equiv="Page-Exit" Content="revealTrans(duration=x, transition=y)">


       Duration  表示滤镜特效的持续时间(单位:秒)
       Transition 滤镜类型。表示使用哪种特效,取值为0-23。


       0 矩形缩小
       1 矩形扩大
       2 圆形缩小
       3 圆形扩大
       4 下到上刷新
       5 上到下刷新
       6 左到右刷新
       7 右到左刷新
       8 竖百叶窗
       9 横百叶窗
       10 错位横百叶窗
       11 错位竖百叶窗
       12 点扩散
       13 左右到中间刷新
       14 中间到左右刷新
       15 中间到上下
       16 上下到中间
       17 右下到左上
       18 右上到左下
       19 左上到右下
       20 左下到右上
       21 横条
       22 竖条
       23 以上22种随机选择一种


  9、MSThemeCompatible (XP主题)
   说明:是否在IE中关闭 xp 的主题
   用法:<Meta http-equiv="MSThemeCompatible" Content="Yes">
   注意:关闭 xp 的蓝色立体按钮系统显示样式,从而和win2k 很象。


  10、IE6 (页面生成器)
   说明:页面生成器generator,是ie6
   用法:<Meta http-equiv="IE6" Content="Generator">
   注意:用什么东西做的,类似商品出厂厂商。


  11、Content-Script-Type (脚本相关)
   说明:这是近来W3C的规范,指明页面中脚本的类型。
   用法:<Meta http-equiv="Content-Script-Type" Content="text/javascript">
   注意:


  ★NAME变量


  name是描述网页的,对应于Content(网页内容),以便于搜索引擎机器人查找、分类(目前几乎所有的搜索引擎都使用网上机器人自动查找meta值来给网页分类)。
  name的value值(name="")指定所提供信息的类型。有些值是已经定义好的。例如description(说明)、keyword(关键字)、refresh(刷新)等。还可以指定其他任意值,如:creationdate(创建日期) 、
document ID(文档编号)和level(等级)等。
  name的content指定实际内容。如:如果指定level(等级)为value(值),则Content可能是beginner(初级)、intermediate(中级)、advanced(高级)。

 

  1、Keywords (关键字)
   说明:为搜索引擎提供的关键字列表
   用法:<Meta name="Keywords" Content="关键词1,关键词2,关键词3,关键词4,……">
   注意:各关键词间用英文逗号“,”隔开。META的通常用处是指定搜索引擎用来提高搜索质量的关键词。当数个META元素提供文档语言从属信息时,搜索引擎会使用lang特性来过滤并通过用户的语言优先参照来显示搜索结果。例如:
      <Meta name="Kyewords" Lang="EN" Content="vacation,greece,sunshine">
      <Meta name="Kyewords" Lang="FR" Content="vacances,grè:ce,soleil">


  2、Description (简介)
   说明:Description用来告诉搜索引擎你的网站主要内容。
   用法:<Meta name="Description" Content="你网页的简述">
   注意:


  3、Robots (机器人向导)
   说明:Robots用来告诉搜索机器人哪些页面需要索引,哪些页面不需要索引。Content的参数有all、none、index、noindex、follow、nofollow。默认是all。
   用法:<Meta name="Robots" Content="All|None|Index|Noindex|Follow|Nofollow">
   注意:许多搜索引擎都通过放出robot/spider搜索来登录网站,这些robot/spider就要用到meta元素的一些特性来决定怎样登录。


    all:文件将被检索,且页面上的链接可以被查询;
    none:文件将不被检索,且页面上的链接不可以被查询;(和 "noindex, no follow" 起相同作用)
    index:文件将被检索;(让robot/spider登录)
    follow:页面上的链接可以被查询;
    noindex:文件将不被检索,但页面上的链接可以被查询;(不让robot/spider登录)
   nofollow:文件将不被检索,页面上的链接可以被查询。(不让robot/spider顺着此页的连接往下探找)


  4、Author (作者)
   说明:标注网页的作者或制作组
   用法:<Meta name="Author" Content="张三,abc@sina.com">
   注意:Content可以是:你或你的制作组的名字,或Email


  5、Copyright (版权)
   说明:标注版权
   用法:<Meta name="Copyright" Content="本页版权归Zerospace所有。All Rights Reserved">
   注意:


  6、Generator (编辑器)
   说明:编辑器的说明
   用法:<Meta name="Generator" Content="PCDATA|FrontPage|">
   注意:Content="你所用编辑器"


  7、revisit-after (重访)
   说明:
   用法:<META name="revisit-after" CONTENT="7 days" >
   注意:


  ★Head中的其它一些用法

 

  1、scheme (方案)
   说明:scheme can be used when name is used to specify how the value of content should
      be interpreted.
   用法:<meta scheme="ISBN" name="identifier" content="0-14-043205-1" />
   注意:


  2、Link (链接)
   说明:链接到文件
   用法:<Link href="soim.ico" rel="Shortcut Icon">
   注意:很多网站如果你把她保存在收件夹中后,会发现它连带着一个小图标,如果再次点击进入之后还会发现地址栏中也有个小图标。现在只要在你的页头加上这段话,就能轻松实现这一功能。<LINK> 用来将目前文件与其它 URL 作连结,但不会有连结按钮,用於 <HEAD> 标记间, 格式如下:
       <link href="URL" rel="relationship">
       <link href="URL" rev="relationship">


  3、Base (基链接)
   说明:插入网页基链接属性
   用法:<Base href="http://www.xia8.net/" target="_blank">
   注意:你网页上的所有相对路径在链接时都将在前面加上“http://www.cn8cn.com/”。其中target="_blank"是链接文件在新的窗口中打开,你可以做其他设置。将“_blank”改为“_parent”是链接文件将在当前窗口的父级窗口中打开;改为“_self”链接文件在当前窗口(帧)中打开;改为“_top”链接文件全屏显示。

 

  以上是META标签的一些基本用法,其中最重要的就是:Keywords和Description的设定。为什么呢?道理很简单,这两个语句可以让搜索引擎能准确的发现你,吸引更多的人访问你的站点!根据现在流行搜索引擎(Google,Lycos,AltaVista等)的工作原理,搜索引擎先派机器人自动在WWW上搜索,当发现新的网站时,便于检索页面中的Keywords和Description,并将其加入到自己的数据库,然后再根据关键词的密度将网站排序。


  由此看来,我们必须记住添加Keywords和Description的META标签,并尽可能写好关键字和简介。否则,
后果就会是:
  
  ● 如果你的页面中根本没有Keywords和Description的META标签,那么机器人是无法将你的站点加入数
    据库,网友也就不可能搜索到你的站点。


  ● 如果你的关键字选的不好,关键字的密度不高,被排列在几十甚至几百万个站点的后面被点击的可
    能性也是非常小的。


  写好Keywords(关键字)要注意以下几点:

 

  ● 不要用常见词汇。例如www、homepage、net、web等。


  ● 不要用形容词,副词。例如最好的,最大的等。


  ● 不要用笼统的词汇,要尽量精确。例如“爱立信手机”,改用“T28SC”会更好。

 

  “三人之行,必有我师”,寻找合适关键词的技巧是:到Google、Lycos、Alta等著名搜索引擎,搜索与
你的网站内容相仿的网站,查看排名前十位的网站的META关键字,将它们用在你的网站上,效果可想而知了。


  ★小窍门


  为了提高搜索点击率,这里还有一些“捷径”可以帮得到你:


  ● 为了增加关键词的密度,将关键字隐藏在页面里(将文字颜色定义成与背景颜色一样)。


  ● 在图像的ALT注释语句中加入关键字。如:<IMG SRC="xxx.gif" Alt="Keywords">


  ● 利用HTML的注释语句,在页面代码里加入大量关键字。用法: <!-- 这里插入关键字 -->

 

 

View Code
<head>
  <title>文件头,显示在浏览器标题区</title>
   <meta http-equiv="Content-Language" content="zh-cn">
   <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
   <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
   <meta name="ProgId" content="FrontPage.Editor.Document">
   <meta name="制作人" content="唐蓉生">
   <meta name="主题词" content="HTML 网页制作 课件">
</head>

 

posted @ 2012-03-07 12:52 Lavenders 阅读(13) 评论(0) 编辑

2011年11月15日

    在ASP.NET中,有很多种保存信息的对象.例如:APPlication,Session,Cookie,ViewState和Cache等,那么它们有什么区别呢?每一种对象应用的环境是什么?
    为了更清楚的了解,我们总结出每一种对象应用的具体环境,如下表所示:

方法 信息量大小 保存时间 应用范围 保存位置
Application 任意大小 整个应用程序的生命期 所有用户 服务器端
Session 小量,简单的数据

用户活动时间+一段延迟时间(一般
为20分钟)

单个用户 服务器端
Cookie 小量,简单的数据 可以根据需要设定 单个用户 客户端
Viewstate 小量,简单的数据 一个Web页面的生命期 单个用户 客户端
Cache 任意大小 可以根据需要设定 所有用户 服务器端
隐藏域 小量,简单的数据 一个Web页面的生命期 单个用户 客户端
查询字符串 小量,简单的数据 直到下次页面跳转请求 单个用户 客户端
Web.Config文件 不变或极少改变的小量数据 直到配置文件被更新 单个用户 服务器端
     1.Application对象
    Application用于保存所有用户的公共的数据信息,如果使用Application对象,一个需要考虑的问题是任何写操作都要在 Application_OnStart事件(global.asax)中完成.尽管使用Application.Lock和 Applicaiton.Unlock方法来避免写操作的同步,但是它串行化了对Application对象的请求,当网站访问量大的时候会产生严重的性 能瓶颈.因此最好不要用此对象保存大的数据集合.
       2.Session对象
    Session用于保存每个用户的专用信息.她的生存期是用户持续请求时间再加上一段时间(一般是20分钟左右).S
ession中的信息保存在Web服务器内容中,保存的数据量可大可小.当Session超时或被关闭时将自动释放保存的数据信息.由于用户停止使用应用 程序后它仍然在内存中保持一段时间,因此使用Session对象使保存用户数据的方法效率很低.对于小量的数据,使用Session对象保存还是一个不错 的选择.使用Session对象保存信息的代码如下:

 

//存放信息
Session["username"]="zhouhuan";
//读取数据
string UserName=Session["username"].ToString();

    3.Cookie对象
    Cookie用于保存客户浏览器请求服务器页面的请求信息,程序员也可以用它存放非敏感性的用户信息,信息保存的时间可以根据需要设置.如果没有设置 Cookie失效日期,它们仅保存到关闭浏览器程序为止.如果将Cookie对象的Expires属性设置为Minvalue,则表示Cookie永远不 会过期.Cookie存储的数据量很受限制,大多数浏览器支持最大容量为4096,因此不要用来保存数据集及其他大量数据.由于并非所有的浏览器都支持 Cookie,并且数据信息是以明文文本的形式保存在客户端的计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网站的安全性.使用 Cookie对象保存的代码如下:

//存放信息
Response.Cookies["UserID"].Value="0001";
//读取信息
string UserID=Response.Cookies["UserID"].Value;

    4.ViewState对象
    ViewState 常用于保存单个用户的状态信息,有效期等于页面的生存期。ViewState容器可以保持大量的数据,但是必须谨慎使用,因为过多使用会影响应用程序的性 能。所有Web服务器控件都使用ViewState在页面回发期音保存自己的状态信息。如果某个控件不需要在回发期间保存状态信息,最好关闭该对象的 ViewState,避免不必要的资源浪费。通过给@Page指令添加“EnableViewState=false”属性可以禁止整个页面的 ViewState。使用ViewState对象保存信息的代码如下。

  //存放信息
   ViewState["nameID"]="0001";
  
//读取信息
   string NameID=ViewState["nameID"].ToString();

5.Cache对象
    Cache对象用于在HTTP请求间保存页面或数据。该对象的使用可以极大地提高整个应用程序的效率。它允许将频繁访问的大量服务器资源存储在内存 中,当用户发出相同的请求后服务器不再次处理而是将Cache中保存的信息返回给用户,节省了服务器处理请求的时间。此对象的实例是每个应用程序专用的, 其生存期依赖于该应用程序的生存期。当重新启动应用程序时,将重新创建其Cache对象的实例。使用Cache对象保存信息的代码如下。

  //存放信息
   Cache["nameID"]="0001";
  
//存放信息
   Cache.Insert("nameID","0001"1);
  
//读取信息
  string NameID=Cache["nameID"].ToString();

   6.隐藏域
Hidden控件是属于HTML类型的服务器控件,使用此控件可以实现隐藏域的功能。其实此控件和其它服务器控件的使用没有太大区别,只是它不会在用户端 的浏览器中显示,始终处于隐藏状态。但是每次页面提交的时候,此控件和其它服务器控件一同提交到服务器端,因此在服务器端可以使用Value属性获取或保 存一些数据信息。使用Hidden控件保存信息的代码如下。

  //存放信息
  
Hidden.Value="0001";
  
//获取信息
  
string NameID=Hidden.Value;

7.查询字符串
查询字符串的方式是将要传递的值连接在URL后面,然后通过Response.Redirect方法实现客户端的重定向。这种方式可以实现在两个页面之间传递信息。由于URL的长度有一定的限制,因此不能传递太大的信息,加外安全性也不是很好。
传递信息如下。

   Response.Redirect("List.aspx?nameID=0001&gradeID=002");
  
//执行上面的语句后在IE地址栏显示的URL的代码如下。
   http://localhost/List.aspx?nameID=0001&grade=002
  
//当跳转到List.aspx后,可以通过以下代码获得所传递的信息。
  string NameID.GradeID;
   NameID
=Request.Params["nameID"];
   GradeID
=Request.Params["gradeID"];

      除了以上介绍的几种对象外,还可以使用Context对象和Web.Config配置文件。

posted @ 2011-11-15 18:35 Lavenders 阅读(28) 评论(0) 编辑

2011年11月5日

摘要: 一个解决方案中可能会包含多个类库项目和一个网站,打包过程如下:1、在【解决方案资源管理器】中【右键-添加-新建项目】,左侧选择【其他类型项目】,右侧选择【安装项目】,如下图:2、点击【确定】后,左侧【文件系统】选项卡中选择【应用程序文件夹】-【添加】-【项目输出】,类库项目选择添加【主输出】,网站选择添加【内容文件】3、在网站的制作过程中可能用到一些其他的BLL组件,也需要添加进来,还是选择【应用程序文件夹】-【添加】-【程序集】,选择你网站BIN文件夹下的一些BLL4、因为要带数据库带包,此处采用打包程序利用系统存储过程附加MDF和LDF文件的方法,所以【应用程序文件夹】中还需要【添加-文件阅读全文
posted @ 2011-11-05 14:52 Lavenders 阅读(116) 评论(0) 编辑

2011年11月4日

摘要: 应用程序数据缓存本缓存依赖于 System.Web.Caching 命名空间。 该命名空间提供了缓存服务器上常用的数据的类,其包含的一个Cache类提供很多的方法,由于该类是一个字典类,所以,在其中存放任意的数据对象,如哈希表、数据集等。这些方法能够对这些对象进行增加、删除、失效等操作,甚至还可以依赖其它文件或缓存项的对象,并且能在从Cache中移除对象时执行回调以通知应用程序。示例代码如下:应用程序数据缓存1//增加命名空间2usingSystem.Web.Caching;34///<summary>5///根据索引键值从缓存中获取对象6///</summary>7/阅读全文
posted @ 2011-11-04 11:01 Lavenders 阅读(25) 评论(0) 编辑
 
摘要: 局部数据缓存有时我们需要的功能不是缓存全部的页面,而是缓存页面上的某一个部分,其余部分是动态的,这时,就需要用到页面局部缓存,该缓存包括两个部分:控件缓存和替换后缓存。 控件缓存(片段缓存) 本缓存是之前提到过的,类似于页面输出缓存那样,建立一个用户控件,将需要缓存的信息写在控件内,并标记其为可缓存的,这样就缓存了控件内的信息,但是并没有缓存整个页面,这样就达到了页面局部缓存的目的。这种缓存比较适合页面的信息有较多的动态信息,少部分的静态信息,这样的情况可用页面局部缓存。 声明方式也很简单,先建立一个用户控件(ascx),并且在其内部声明为可缓存的,如下所示:可缓存的用户控件1<%@Co阅读全文
posted @ 2011-11-04 10:59 Lavenders 阅读(32) 评论(0) 编辑
 
摘要: 页面输出缓存本缓存机制是.NET环境中比较简单的缓存机制,其作用是将整个aspx页面的内容保存在服务器的内存中。这样,用户在访问该页面的时候,直接从服务器内存中调用,而不用和数据库进行交互,除非缓存数据过期,才重新从数据库取一次数据。这样的环境比较适合于一些经常不用变动的数据页面。 使用方法非常简单,在aspx页面顶部添加如下声明。<%@OutputCacheDuration="60"VaryByParam="none"%> 对于上面的声明,解释一下参数的意思: Duration:缓存过期时间(单位:秒)。上述声明表示本页面在每60秒过期一次阅读全文
posted @ 2011-11-04 10:57 Lavenders 阅读(26) 评论(1) 编辑

2011年10月19日

摘要: WebApplication编程模型的优点:●网站编译速度快,使用了增量编译模式,仅仅只有文件被修改后,这部分才会被增量编译进去。●生成的程序集WebSite:生成随机的程序集名,需要通过插件WebDeployment才可以生成单一程序集WebApplication:可以指定网站项目生成单一程序集,因为是独立的程序集,所以和其他项目一样可以指定应用程序集的名字、版本、输出位置等信息●可以将网站拆分成多个项目以方便管理●可以从项目中和源代码管理中排除一个文件●方便的支持VSTS的Team Build方便每日构建●更强大的代码检查功能,并且检查策略受源代码控制●可以对编译前后进行自己规定的处理We阅读全文
posted @ 2011-10-19 18:22 Lavenders 阅读(37) 评论(0) 编辑

公告


Powered By: 博客园
模板提供沪江博客