前端开发
HTTP header中的 Cache-control
Cache-control常见的取值有private、no-cache、max-age、must-revalidate等
网页的缓存是由HTTP消息头中的“Cache-control”来控制的,常见的取值有private、no-cache、max-age、must-revalidate等,默认为private。其作用根据不同的重新浏览方式分为以下几种情况:
(1) 打开新窗口
如果指定cache-control的值为private、no-cache、must-revalidate,那么打开新窗口访问时都会重新访问服务器。而如果指定了max-age值,那么在此值内的时间里就不会重新访问服务器,例如:
Cache-control: max-age=5
表示当访问此网页后的5秒内再次访问不会去服务器
(2) 在地址栏回车
如果值为private或must-revalidate(和网上说的不一样),则只有第一次访问时会访问服务器,以后就不再访问。如果值为no-cache,那么每次都会访问。如果值为max-age,则在过期之前不会重复访问。
(3) 按后退按扭
如果值为private、must-revalidate、max-age,则不会重访问,而如果为no-cache,则每次都重复访问
(4) 按刷新按扭
无论为何值,都会重复访问
当指定Cache-control值为“no-cache”时,访问此页面不会在Internet临时文章夹留下页面备份。
另外,通过指定“Expires”值也会影响到缓存。例如,指定Expires值为一个早已过去的时间,那么访问此网时若重复在地址栏按回车,那么每次都会重复访问:
Expires: Fri, 31 Dec 1999 16:00:00 GMT
在ASP中,可以通过Response对象的Expires、ExpiresAbsolute属性控制Expires值;通过Response对象的CacheControl属性控制Cache-control的值,例如:
Response.ExpiresAbsolute = #2000-1-1# ‘ 指定绝对的过期时间,这个时间用的是服务器当地时间,会被自动转换为GMT时间
Response.Expires = 20 ‘ 指定相对的过期时间,以分钟为单位,表示从当前时间起过多少分钟过期。
Response.CacheControl = “no-cache”
如何编写兼容各主流邮箱的HTML邮件
1、全局规则之一,不要写<style>标签、不要写class,所有CSS都用style属性,什么元素需要什么样式就用style写内联的CSS。
2、全局规则之二,少用图片,邮箱不会过滤你的img标签,但是系统往往会默认不载入陌生来信的图片,如果用了很多图片的邮件,在片没有载入的情况下,丑陋无比甚至看不清内容,没耐心的用户直接就删除了。图片上务必加上alt。
3、不要在style里面写float、position这些style,因为会被过滤。那么如何实现左右布局或者更复杂的布局呢?用table。
4、 style内容里面background可以设置color,但是img会被过滤,就是说不能通过CSS来设置背景图片了。但是有一个很有意思的元素属 性,也叫background,里面可以定义一个图片路径,这是个不错的替代方案,虽然这样功能有限,比如无法定位背景图片了,有总比没有好。例如要给一 个单元格加一个背景,必须这样写:
5、div模式的邮箱不支持flash,iframe模式的有待验证。
AJAX框架–Spry 介绍
最近看完了Adobe的AJAX框架Spry的所有文档和Demo,觉得这东西挺有意思的,在这里介绍给大家。
Spry框架的开发人员是来 自于DreamWeaver开发组,他们把Spry框架做为DreamWeaver的一个完美补充为设计者和开发者提供对AJAX技术的支持。Spry框 架是一个轻量级的AJAX框架,它的代码和标签十分的简洁和优雅,以保证让用户能便捷的使用,并不会为过繁杂的标签所惑。
Spry框架的官方网址:
http://labs.adobe.com/technologies/spry
在这里你能找到最新的文档和下载最新的Spry版本,目前版本是预览版1.3_08-11。
大家可以先在下面的看到Spry的示例和Demo:
http://labs.adobe.com/technologies/spry/samples/
http://labs.adobe.com/technologies/spry/demos/
Spry框架其实就是一个客户端的JavaScript类库,包含了一组JavaScript文件,CSS,图片文件,通过官方的框架结构图,我们能看 出Spry框架的核心是四部分:XML数据器(XML Data Sets),动态区域(Dynamic Regions),装饰器库(Widgets)和变化效果库(Transition Effects)。
我们可以看出,Spry框架接收的数据格式只是XML数据格式。
一,XML数据器(XML Data Sets)
XML数据器是一个提供了从XML文档中载入和管理数据的JavaScript对象。它是Spry框架中处理XML格式数据的一个JavaScript 功能实现。通过它,我们可以从XML中直接得到转换成表格数据格式的行和列的值,其实就是数组。它封装了获取XMLhttpRequest的方法,和发送 并接收数据等一系列获取数据的方法。
要创建一个XML数据器,你必须在你的HTML文件中加入两行引入JavaScript文件的代码:
上面引入的是Spry框架的核心js文件之一。”xpath.js”是Google基于XPath 1.0标准的JavaScript功能实现。你如果想获得更多的关于它的信息,可以访问Google的开源项目 google-ajaxslt project page .
“SpryData.js”则包含了定义XML数据器和动态区域的代码。
构造XML数据器就好像新建一个类一样,用”new”关键字即可:
var dsPhotos = new Spry.Data.XMLDataSet(“/photos.php?galleryid=2000″, “/gallery/photos/photo”);
Spry框架为XML数据器提供了一些有特色的功能:如数据排序,数据过滤,按指定时间间隔自动更新,并引入了观察者通知模式以支持事件的触发。
关于XML数据器更多资料,大家可以参考http://labs.adobe.com/technologies/spry/articles/data_set_overview/,这一部分笔者已经翻译完成了,但英文原文其实写的通俗易懂,如果对一些名词翻译的不准确反倒会误导了大家,所以还是不贴出来了,大家可以参考官方英文文档。
二,动态区域(Dynamic Regions)
一旦你建立了XML数据器,你就可以在动态区域中去显示这个数据器的数据了。
创建动态区域块很简单,只要在html标签的相应位置加上”spry:region”属性就可以了,Spry框架就会知道这一块是被标识成动态区域了。
在动态区域,你可以有条件的选择要输出的数据,也可用循环输出。
动态区域另一个特点就是,它分为master和detail两个区域类型。
如下面的Demo截图:
master区域的数据改变会使detail区域的数据相应发生改变
两者都注册成XML数据器的观察者
当master区域的数据变化时,触发detail区域的响应事件,从面达到更新相应数据。
大家可参考http://labs.adobe.com/technologies/spry/samples/DataSetMasterDetailSample.html所示的功能。
这只是动态区域简单的示例,复杂的情况可能会有多个XML数据器与多个动态区域相互关联触发。
三,装饰器库(Widgets)
一个装饰器是由一组HTML,CSS,JavaScript封装成的高级UI。最常见的装饰器有可折叠的菜单,树型菜单和选项table面板等。这些对 象都比较难于创建,需要一些更高级的编程经验。Spry的开发组在创建装饰器这一概念就是希望开发者们能相互协作,共享各自的设计,把这些高级界面元素用 在自己的页面上。
Spry框架下的装饰器是易于编辑的。这种模型非常适合于设计者和编辑人员:要改变外观,只要改变CSS就可以了,要增加一个可折叠菜单只要copy和paste一个代码块就够了。
如,你能看懂的这段代码是创建了一个可折叠菜单吗?
Panel Header 1
Panel 1 Content
Panel Header 2
Panel 2 Content
Panel Header 3
Panel 3 Content
var acc1 = new Hanzo.Widget.Accordion(“Acc1″);
这段代码是非常简洁清晰的,没有什么繁杂的标签,这样设计是为了易于阅读。
关于这个例子,可以参考http://labs.adobe.com/technologies/spry/samples/accordion/AccordionSample.html
四,变化效果库(Transition Effects)
Spry框架的变化效果库都存于SpryEffects.js文件中,是基于JavaScript的一些动态变化效果,如,淡出,改变形状等。
Spry框架在设计时,曾考虑直接用第三方的效果库,如Script.aculo.us,但后来开发小组觉得要保证框架代码和标签的一致性,还是选择了 自已开发,但是也基本上是以Script.aculo.us为原型进行设计,因为Script.aculo.us 本身就是一个非常优秀的变化效果库框架。
由于Spry框架现在只是预览版,所以目前只支持七种变换:
Appear/Fade Makes an element appear or fade away
Highlight Flashes a color as [...]
Google Earth KML中文说明
Google Earth KML中文说明
基于Google Earth客户端版本3.0 的KML 版本2.0
本文来源于Google由Step1.cn翻译并整理,若有任何疑问,可到评论区留言
KML 2.0介绍
KML全称是Keyhole Markup Language KML,是一个基于XML语法和文件格式的文件,用来描述和保存地理信息如点、线、图片、折线并在Google Earth客户端之中显示,
(KML以前的版本能够被Google Earth读取并保存为KML 2.0)
KML 2.0提供以下功能:
指定一个地点的图标和标注来区分每一个地点
为每一个视图指定明确的视角来创建不同的特写镜头
使用指定到屏幕或地理位置的图片标注
为特定种类的标注定义显示样式
为标注指定基于简单HTML语法的描述,支持超级链接和图片的显示
使用目录(folders)对标注进行树形的分类管理(为了便于理解和符合习惯,将”folder”翻译为”目录”,实际上是代表一组地理标注,请谅解)
基于时间戳记的标注可以用来进行动态的播放
从本地或远程的网络地址动态的加载KML文件
当Google Earth客户端视图变化时,自动将视图信息发送给指定的源服务器并从服务器获取相关的标注信息
KML被Google Earth viewer显示的过程和HTML网页被浏览器处理差不多,而且和HTML一样,KML也使用一种基于标签(名称和属性)的语法格式来描述地里标注信息,可以说,Google Earth viewer是一个KML文件浏览器.
目录
KML 2.0 What’s New
编写您自己的Google earth KML文件
KML基础
常用标签
地名标注(Placemarks)
几何图形(Geometry)
目录(Folders)
文档(Documents)
图片标注(Image Overlays)
地理图片标注(Ground Overlays)
屏幕图片标注(Screen Overlays)
时间
样式
Schemas
网络连接
Google Earth KML 2.0参考
KML语法规则
文档结构
标记类型
字符串
KML标签列表
<address>
<altitudeMode>
<begin>
<color>
<coordinates>
<description>
<Document>
<drawOrder>
<east>
<end>
<extrude>
<fill>
<Folder>
<geomColor>
<GeometryCollection>
<geomScale>
<GroundOverlay>
<h>
<heading>
<href>
<Icon>
<IconStyle>
<innerBoundaryIs>
<labelColor>
<latitude>
<LatLonBox>
<LinearRing>
<LineString>
<longitude>
<LookAt>
<name>
<NetworkLink>
<north>
<ObjArrayField>
<ObjField>
<open>
<outerBoundaryIs>
<outline>
<overlayXY>
<Pair>
<parent>
<Placemark>
<Point>
<Polygon>
<PolyStyle>
<range>
<refreshInterval>
<refreshVisibility>
<rotation>
<Schema>
<scale>
<ScreenOverlay>
<screenXY>
<SimpleArrayField>
<SimpleField>
<size>
<south>
<snippet>
<Style>
<StyleMap>
<styleUrl>
<tessellate>
<tilt>
<TimePeriod>
<TimeInstant>
<timePosition>
<type>
<href>
<Url>
<viewRefreshMode>
<viewRefreshTime>
<visibility>
<w>
<west>
<x>
<y>
KML 2.0 What’s New
KML 1.0是由原先的Keyhole客户端进行读写的文件格式,Google Earth完全支持KML 1.0文件,KML 2.0 是KML 1.0的升级版本,主要的更新如下:
Google Earth默认的输出文件格式改为KMZ,这是一个经过ZIP格式压缩过的KML文件,可以被任何支持ZIP压缩文件格式的软件打开,这种文件的优点是自身可以包含图片而不需要引用网络上的图片;
<description>标签现在可以支持一些标准的HTML格式语法,例如链接、图片、带格式文本和表格;
过去使用的<View>标签被新的<LookAt>标签替代;
对<ScreenOverlay>标签的语法进行了升级更新;
样式功能更为强大,现在由<IconStyle>、 <LabelStyle>、 <LineStyle>和<PolyStyle>四个分样式组成;
过去的网络连接功能升级后能支持基于视图变化的更新;
线段可以选择是否根据地形进行自动调整;
<opacity>标签不再支持,推荐使用<color>标签来实现透明;
Network links功能现在支持向服务器发送当前视角信息,以便让服务器返回特定的KML文件。
编写您自己的Google earth KML文件
Google Earth中的所有标注都是通过KML来描述的,KML有以下撰写方式:
使用Google Earth client撰写KML文件:
对于希望创建通过E-mail或者网页来发布的不动态的KML文件的用户来说,Google Earth
客户端就是一个很好的KML撰写工具,在Google Earth客户端中简单的按照您自己的要求组织您需要的数据并保存成一个独立的文件即可,
在开发人员想要测试复杂的KML文档结构的时候,这个功能也同样有用,
Google Earth客户端能够创建和保存几乎所有的KML标签。
使用文本编辑器:
你可以使用一个文本编辑器来创建简单的KML文件,或者测试一个KML文件的结构和语法的有效性。
TIP:
想要快速的检查KML语法,在Google [...]
