Feb
23
一)罗密欧与朱丽叶,经典指数,750
这个被伟大的莎翁在四百多年前用喜剧的形式改变出来的爱情故事,在某种程度上来说,是一部极富人文精神的爱情史诗。几百年来一直是人们津津乐道的对象。在莎翁的笔下,爱情是超越一切的。甚至可以超越门第,地位,家族偏见等这些就是在今天还被普通的英国人所重视的东西。
当然,莎翁对于剧中男女主人公年龄问题上的处理,也是令人乍舌的。也许一百多年前的人们仍然不明白为什么爱情会那么早的降临在一对未成年的男女身上,而且是那么牢固,让这一对恋人能够抛开自己的生死。毕竟,当朱丽叶第一次坠入情网时的年龄,刚满十四岁。但是现在,人们不再会有以前的那种观念了,当人们看到恋爱的年龄越来越小的趋势一步步向我们逼近的时候,人们不得不佩服莎翁的预见能力,不管现在十四五岁男男女女,他们所正在经历的一切是不是爱情。
剧尾是全剧最精彩的部分,这一对相爱的男女,由于误会而双双失去了生命。这一幕在四百多年前维多利亚时代的城市剧场里,曾经让全场鸦雀无声,但是在今天,这样的结尾对今天的人们来说已经是见怪不怪了。其实她们是因为爱情而不是因为误会而失去生命的。对此感到惋惜,是没有必要的。
结论,残酷的爱情,任何伟大爱情的必由之路。
(二)维纳斯和阿都奈斯经典指数,750
在所有的爱情中,有得意者,就有失意者。这个来自于古希腊的爱情故事就是这样。从某种程度上来说,那个美少年阿都奈斯对自己所产生的爱情,一点也不比维纳斯对他的爱情更浅。唯一不同的是,维纳斯对他的爱,是任何社会都可以宽容接受的,虽然两者在身份和地位上有一点差别。可是阿都奈斯对于自己狂热的爱,却是难以被人理解。以至于后来人把他的这种行为叫做“自恋”(narcissism),在心理学的研究中则被归为病态的一类。这对于这个美少年的本身是很不公平的。因为所有的爱,只要是爱,都不应该受到人们的冷落甚至不屑。
当然维纳斯对于这位美少年的爱,也是令人称道的,其追求的程度,迫不及待的心情,让现在很多高傲,自负的娇小姐们都无法理解。用一句现在流行的话来说就叫“做神仙做到她这个份上,还是不要做了”。
忘情的维纳斯遇见了无动于衷,铁石心肠的阿都奈斯,从她的角度上来说,是她爱错了人,可是她有什么办法呢?爱情这个东西是不分什么对错的,她就是爱他,这没有办法。维纳斯把一切能用的办法都用上了,故事里对于情欲的描述,让我们今天的男女看了都有点觉得火辣辣,可是不要误会,这是维纳斯爱他的表现,与色情无关这个故事还给我们后来的爱情文学拓展了更广阔的空间。从某种意义上来说,阿都奈斯爱的不是他自己,而是一个第三者,从更广一点的意义上来说,从那以后所有关于三角恋爱乃至四角,五角恋爱的文学作品都是来自于一个叫做“维纳斯和阿都奈斯”的故事。
结论,一厢情愿的爱情,总是伴随着一个人的快速毁灭和另一个人的慢慢毁灭。
(三)爱德华八世和辛普森夫人 经典指数,800
这是近代以来最被人们津津乐道的一个爱情故事,直到如今还被广为流传。在不列颠帝国将近千年的历史中,还没有一位国王会主动逊位。而他下台的原因却是为了两个字——爱情。这位使得他抛弃自己应有政治地位的女人,竟然是一位离过两次婚的美国女人。
这件事在欧洲的上流社会眼里,无异于大逆不道。在当时的欧洲主流社会,人们还无法给这件事情以充分的宽容和认同。成千上万国王的支持者听到了收音机里传来的国王退位的声明,泪流满面地瘫倒在地。也许他们的举动里面还包含有对这份爱情极大的敬意,他们是怀着一种无可奈何的心情看着自己爱戴的国王走下王座的。但任何事情就是这样,有一得必有一失。国王失去了他的王位和他的王国,得到了他最珍视的——爱情。
辛普森夫人后来以温莎公爵夫人的身份把自己丈夫的遗体送回英国,参加国葬。整个英伦三岛举国上下一片悲声。在那个时候,认同他们爱情的人,已经比几十年前要多许多了。人们把他们看作是为爱情献身的经典。现在想起来,没有他们的爱情,整个历史也许会被改变,现任的女王也许永远不会出现。为了爱情而抛弃王位的君主,从国家民族的角度来看,是不负责任,从人的角度来看,是把爱情当作自己毕生的信仰,是“人”这个概念的最完美的诠释。
结论,有代价的爱情,爱情的代价在蔑视爱情的人的面前是泰山,在珍视爱情的人的面前什么也不是。
(四)罗伊和马拉 经典指数 800
在伦敦的一座名叫华铁卢的桥上,一段美丽,哀婉,动人的爱情故事在炮火的轰鸣中悄悄地开始,同样,这份爱情最终也是在这个桥上走到了终点。其实这段爱情没有结束,永远也不会结束。
这段爱情从头到尾都是那么的完美,在这个故事里面,没有一个坏人,我们看到的都是好人。罗伊和马拉在桥头相遇的一瞬,伟大的爱情就开始了。罗伊在雨中望着上面的窗户,在他们的故事里,是点睛之笔。就在两个人在前往教堂结婚的路上,才互相问了对方的名字。一切看似那么的荒诞不经,但却是那么的合情合理。就是这一段闪电般成熟起来的爱情,却让一个人因为爱对方而献出了所有,让另一个人把这份爱情永远的放在自己的心里。
这个故事中的所有人,是宽容的,罗伊的叔叔,妈妈。不宽容的是一种无形的氛围,一种可以把人窒息的氛围。这种氛围牢牢地控制着每一个人,每一个人都在无可奈何的看着残酷的现实一步一步走来。不过从某种意义上来说,马拉的死,恰恰就是这个故事中最动人的部分。正是她的死,才构成了这个故事的不朽,反之,马拉会成为又一个简爱,只不过马拉面对的罗伊,比简爱面对的罗切斯特更加浪漫一点,脾气更加好一点而已。而简爱的故事,实在不能算得上一个伟大,经典的爱情故事。我们把它叫做个人奋斗的经典之作还差不多,或者叫对于维多利亚时代教育制度以及门第观念的批判也行。
英国女作家,简。奥斯丁认为,婚姻应该是门当户对的。可罗伊和马拉的故事已经超出了门当户对的范围。如果我们把这位大作家从坟墓中唤醒,让他对魂断蓝桥的爱情故事进行一番评价,我想她也会感到很为难的,真的很为难。
结论,永远的爱情,无法长相厮守的爱情,才会是永远的爱情。
(五)爱斯梅哈尔达和撞钟人 经典指数 800
在阴森森的巴黎圣母院里的那个撞钟人,被人们称之为野兽,那个为避祸逃到了里面的波希米亚女人,被人们称为美女。美女和野兽的爱情,本来就是一种不对称的爱情,并且反差如此之大,给人的直观感觉,并非像这个伟大的爱情故事一样,那么令人动情,令人回味。但是在几百年以后的钟楼里,当人们看到了两具抱在一起的尸体时,一份感动,对爱情的感动,不禁油然而生。美女和野兽,在生命的最后一刻,抱在了一起,并且永远没有分开。
撞钟人对爱斯梅哈尔达的爱,已经超出了肯为之献身的范围。也许在撞种人看见她的第一眼,就已经把自己的生命交在了她的手里,随时准备为他在心中所爱的女人献出一切。虽然他知道也许这不会得到相应的回报,也许自己的死,只不过是像飞入大海的一片羽毛,只会无声无息,不会有人注意到。但幸运的是,他得到了对方的爱,并且是永远的。
也许这爱情不像其他的才子佳人的爱情故事一样,那么让人易于接受,那么完美。但这也是一个关于爱情的故事,而且这个爱情故事还是那么的震撼人心,那么的超凡脱俗。大革命时代的人文精神,在这里一览无遗。这个故事告诉了我们,即便是畜生一样的人,也有爱与被爱的权利。即使距离再远的两个人,也会有机会注视同一目标,也会被爱情的彩带,连在一起。
结论,最真实的荒诞的爱,也许爱这个字,本无所谓什么荒诞和真实,只要是爱
(六)幸子和光夫 经典指数 850
八十年带上半叶,风靡了整个华夏大地的故事,从拖沓窘长的剧情中可以看出,这部电视剧主要所讲的还不是关于爱情,而是更加注目于亲情。剧中两人相爱,只是为了今后的亲情悲剧做了一个很好的铺垫。尽管这个铺垫很巧妙,但是我们不得不承认它很残酷。好像是要逼着人们在爱情和亲情之间作出一个选择,这样的选择,对人类来说,是勉为其难的。所幸的是编剧在关键时刻,让幸子悄悄地死去,解除了我们的为难。我们的思想,在跨越人类道德最终底线的那一刻,被编剧生生的拉了回来。
光夫和性子的爱,在当时人们的眼里总是会有两种解释,一种解释就是,在两人得知他们是兄妹的时候,他们的爱情一下子转变成了兄妹之爱。还有一种就是,他们的爱是真正的爱,只是在现实生活中,没有办法处理,所以只好让其中的一个人死去。幸子最后在飘满樱花的湖中小船上,在光夫的怀里静静的死去,也可以有两种解释,一是他死在自己哥哥的怀里,一是他死在自己爱人的怀里。可叹的是,当时抱前一种观点的人,占到了绝大多数。
其实,爱就是爱,不会转化为其它的什么。这一对男女,没有人会怀疑是天生的一对,即便在真实生活中,这两位演员也是一对夫妻。这就是编剧的可恶之处,他把任何条件都设定为对爱情的发展有利,唯独把一个条件定死了,这是先天的,后天努力所无法改变的。那就是,他们是兄妹。
可怜一对相爱的人,他们为了爱情付出了很多,但没有多少人会理解他们,只有把那一份真挚的爱情藏在心底,一个辞世而去,一个面对一汪秀丽的湖水,回味着逝去的爱情。
结论,不可能的爱情,我们的这个社会还需要进化,我们要思考一下,道德和爱情,谁能超越谁。
(七)梁山伯与祝英台 经典指数 900
这是个在中国民间流传最广的爱情故事。某种程度上,还是被今天的一般人在爱情心理上所认同。不过今天的按男女们不会像那时候的梁祝那么的傻,竟然会坐以待毙,双双化蝶。在一个互联网和移动电话盛行的现代社会,男女之间的交往不会再像古代社会那么困难,那么的低效率。人们的心理承受能力也不会象过去那么脆弱。我们直到今天还是能够感觉到当时的那一对男女在相思时候的痛苦。其实这种痛苦在你回味的时候是很甜蜜的,哪怕付出生命的代价,这种代价所获得的收益,也是任何东西所无法代替的。现代男女的爱情故事之所以没有办法成为伟大的爱情,就是他们付出的太少,绝对不肯为之献身。毕竟,生命,是现代人可以付出代价的底线,不是可以轻易超越的。
这个故事中的求爱手段,也是让我们感到兴奋的地方。女主人公女扮男装,用一些景物和实物来进行比喻,向男主人公求爱。这一段故事的描写,是人们最津津乐道的。因为这不管从形式上还是内容上,都超越了故事发生的那个时代所能包含的一切特征,有一丝淡淡的现代主义的味道。浅薄的研究者,会从中得出一个里面有同性恋倾向的描写。更深一步来想,这就是爱情的伟大力量,可以超越一切时代和观念的束缚,让人们作出不被当时社会理解但能被后代津津乐道的事情。
画龙点睛之笔,就是里面的化蝶。卑微的生命往往代表着自由。向往爱情和自由的人们,往往会这样去做,因为这两点,就是他们的生命。
结论,无奈的爱情,只能在另外一个世界中寻找他们爱情的延续。
(八)莫瑞尔和保罗 经典指数 900
没有人会否认母爱的伟大,但母爱是单方面的。如果母爱可以得到回报,那也只能是来自儿女的儿女之爱。但劳伦斯在“儿子与情人”中,对这一观念进行了强有力的挑战。没有人会否认劳伦斯是二十世纪最重要的文学家,也没有人会否认弗洛伊德是二十世纪最伟大的心理学家。但能够对这部作品所讲述的故事公开表示认同的,恐怕远远不如对这部作品进行研究的人多。
莫瑞尔太太把自己身上涌动的激情,倾注到了自己的儿子身上,自己也从儿子的身上,获取从自己丈夫身上得不到的爱情感觉。对于这位莫瑞尔太太来说,在她心底里,早已把自己的儿子当作自己理想中的爱人,她照顾他,抚养他,所做的一切,都超出了一位母亲所能做的一切。她是真正把自己的儿子当作了自己爱的对象,这种爱,不是单纯的亲情之爱,更大程度上来说是一种爱情的体现。而保罗,也在心目中把自己的母亲当作了自己的爱人,以至于他觉得,只要他母亲在,他在次生就不可能找到自己的爱人。因为这个爱人就在他身边,那就是他的母亲。
在这部争议很大的作品里,人们探讨的更多的是心理层次和社会层次方面的东西。很多的时候把融在里面的爱情,解释为一种情节(Odipus Complex),这个源于古希腊的英语词汇,虽然历史很悠久,但却让人们研究了几千年,直到今天,还没有一个真正的结果。也许人类不敢正视自己身上存在着的和现实社会不协调的东西,也许这个社会已经形成了一个定势,没有人能够去打破。我们只有沿着自己为自己设定的道路,走下去,永不回头。
结论,最有人伦的不伦之爱,这是一种爱情,最起码也要算是爱情之树上的一个分叉。
(九)刘欣和董贤 经典指数 950
断袖之癖,是我们在大一点的时候所学到的一个成语。从字面上来看,十分的隐晦,不去做一番考证还真是不能明白其中的真意。刘欣,这个西汉王朝的昏君,竟然是一个至真至爱之人,在两人同榻而眠的时候,当他有要事要离开时,董贤的身体压住了他宽大的袖子,他不忍吵醒自己的爱人,断袖以离去,这一分细致,对爱人的那一份真爱,足以使任何时代的任何人,都感到汗颜。当然他的另一半,董贤,也是一样,他在哀帝刘欣死去的第二天,就在家中自杀,死的时候,他还保留着哀帝留给他的玉玺。不幸的是,这一对恋人是两个男人,也就是被我们今天很多所谓的正人君子所不齿的同性恋。
我们现在的很多人,一看到断袖之癖这个成语,都会理解成为不太好的方面,而忽略了其中对爱情的诠释。没有什么人规定了爱情是属于异性之间的专利,同性之间的爱情也许会更加真挚,更加荡气回肠。刘欣和董贤,就是属于这种爱情的代表。
爱之真,情之切,试想我们今天,即便是在异性之间,能对对方如此体贴,如此忠诚的爱侣,也并不多见。这就是源于爱的举动,这举动背后的动力,不可能是别的,只能是爱情。
在人类历史发展的长河中,同性之爱已经不是一份年青的爱情,从古希腊人对与同性之爱的宽容态度,到中国大唐盛世时人们口无遮拦地对此进行谈论并亲身实践,直到现代西方国家从社会观念方面,法律方面,对此所作出的宽容调整,我们可以看出,这不是一种属于畸形的爱情,只是在漫长的历史发展过程中,没有得到应有的认同,没有得到良好的发展。
刘欣和董贤的故事,应该属于伟大的爱。
结论,同性之爱,也会是动人的,伟大的,催人泪下的。
(十)美人鱼和王子 经典指数 1000
这个来自于北欧的爱情故事,当然是一个最简单的爱情故事,但却是所有的爱情故事中最为不朽的。我们可能在很小的时候就已经知道了这个故事。但是那个时候的我们,还没有意识到这是一个伟大的爱情故事,只是很为那个小美人鱼惋惜,我们并不知道人生,包括爱情,本来就是一场残酷的循环,总是要有人去做我们自己做不到的事情。一个人,爱一个人,竟然能够不让他知道,承受着爱他所带来的一切痛苦,还要承受他的漠视,承受着他去爱别的人,最后还要为拯救她所爱的人献出自己的生命。这样的爱情,真的是前无古人,后无来者。幸亏这位可敬的丹麦人描述的只是一个童话中的故事,否则我们这个世界,可真的是进化到了一种极高的境界。
大海是蓝色的,这种蓝色,有一种别样的情调。在这样一个环境下,催生出这样一个伟大的爱情故事,总是理所当然。小美人鱼美丽的脸上,除了苍白之外,还有对爱人的挂念。她修长的美腿上,除了为爱流出的鲜血以外,还有为爱不顾一切,迈出的艰难步伐。
这个故事,是经典中的经典。我们不能指望在这个世界上会出现哪怕一个可堪与之媲美的爱情故事,尤其是现代。但那毕竟是我们的一个理想,这种理想总是在我们的前方闪耀,指引着我们在爱情的海洋上前进的道路。
结论,为爱献身的爱,能够为爱一时献身,是一种境界,能够为爱长久献身,是一种神奇
这个被伟大的莎翁在四百多年前用喜剧的形式改变出来的爱情故事,在某种程度上来说,是一部极富人文精神的爱情史诗。几百年来一直是人们津津乐道的对象。在莎翁的笔下,爱情是超越一切的。甚至可以超越门第,地位,家族偏见等这些就是在今天还被普通的英国人所重视的东西。
当然,莎翁对于剧中男女主人公年龄问题上的处理,也是令人乍舌的。也许一百多年前的人们仍然不明白为什么爱情会那么早的降临在一对未成年的男女身上,而且是那么牢固,让这一对恋人能够抛开自己的生死。毕竟,当朱丽叶第一次坠入情网时的年龄,刚满十四岁。但是现在,人们不再会有以前的那种观念了,当人们看到恋爱的年龄越来越小的趋势一步步向我们逼近的时候,人们不得不佩服莎翁的预见能力,不管现在十四五岁男男女女,他们所正在经历的一切是不是爱情。
剧尾是全剧最精彩的部分,这一对相爱的男女,由于误会而双双失去了生命。这一幕在四百多年前维多利亚时代的城市剧场里,曾经让全场鸦雀无声,但是在今天,这样的结尾对今天的人们来说已经是见怪不怪了。其实她们是因为爱情而不是因为误会而失去生命的。对此感到惋惜,是没有必要的。
结论,残酷的爱情,任何伟大爱情的必由之路。
(二)维纳斯和阿都奈斯经典指数,750
在所有的爱情中,有得意者,就有失意者。这个来自于古希腊的爱情故事就是这样。从某种程度上来说,那个美少年阿都奈斯对自己所产生的爱情,一点也不比维纳斯对他的爱情更浅。唯一不同的是,维纳斯对他的爱,是任何社会都可以宽容接受的,虽然两者在身份和地位上有一点差别。可是阿都奈斯对于自己狂热的爱,却是难以被人理解。以至于后来人把他的这种行为叫做“自恋”(narcissism),在心理学的研究中则被归为病态的一类。这对于这个美少年的本身是很不公平的。因为所有的爱,只要是爱,都不应该受到人们的冷落甚至不屑。
当然维纳斯对于这位美少年的爱,也是令人称道的,其追求的程度,迫不及待的心情,让现在很多高傲,自负的娇小姐们都无法理解。用一句现在流行的话来说就叫“做神仙做到她这个份上,还是不要做了”。
忘情的维纳斯遇见了无动于衷,铁石心肠的阿都奈斯,从她的角度上来说,是她爱错了人,可是她有什么办法呢?爱情这个东西是不分什么对错的,她就是爱他,这没有办法。维纳斯把一切能用的办法都用上了,故事里对于情欲的描述,让我们今天的男女看了都有点觉得火辣辣,可是不要误会,这是维纳斯爱他的表现,与色情无关这个故事还给我们后来的爱情文学拓展了更广阔的空间。从某种意义上来说,阿都奈斯爱的不是他自己,而是一个第三者,从更广一点的意义上来说,从那以后所有关于三角恋爱乃至四角,五角恋爱的文学作品都是来自于一个叫做“维纳斯和阿都奈斯”的故事。
结论,一厢情愿的爱情,总是伴随着一个人的快速毁灭和另一个人的慢慢毁灭。
(三)爱德华八世和辛普森夫人 经典指数,800
这是近代以来最被人们津津乐道的一个爱情故事,直到如今还被广为流传。在不列颠帝国将近千年的历史中,还没有一位国王会主动逊位。而他下台的原因却是为了两个字——爱情。这位使得他抛弃自己应有政治地位的女人,竟然是一位离过两次婚的美国女人。
这件事在欧洲的上流社会眼里,无异于大逆不道。在当时的欧洲主流社会,人们还无法给这件事情以充分的宽容和认同。成千上万国王的支持者听到了收音机里传来的国王退位的声明,泪流满面地瘫倒在地。也许他们的举动里面还包含有对这份爱情极大的敬意,他们是怀着一种无可奈何的心情看着自己爱戴的国王走下王座的。但任何事情就是这样,有一得必有一失。国王失去了他的王位和他的王国,得到了他最珍视的——爱情。
辛普森夫人后来以温莎公爵夫人的身份把自己丈夫的遗体送回英国,参加国葬。整个英伦三岛举国上下一片悲声。在那个时候,认同他们爱情的人,已经比几十年前要多许多了。人们把他们看作是为爱情献身的经典。现在想起来,没有他们的爱情,整个历史也许会被改变,现任的女王也许永远不会出现。为了爱情而抛弃王位的君主,从国家民族的角度来看,是不负责任,从人的角度来看,是把爱情当作自己毕生的信仰,是“人”这个概念的最完美的诠释。
结论,有代价的爱情,爱情的代价在蔑视爱情的人的面前是泰山,在珍视爱情的人的面前什么也不是。
(四)罗伊和马拉 经典指数 800
在伦敦的一座名叫华铁卢的桥上,一段美丽,哀婉,动人的爱情故事在炮火的轰鸣中悄悄地开始,同样,这份爱情最终也是在这个桥上走到了终点。其实这段爱情没有结束,永远也不会结束。
这段爱情从头到尾都是那么的完美,在这个故事里面,没有一个坏人,我们看到的都是好人。罗伊和马拉在桥头相遇的一瞬,伟大的爱情就开始了。罗伊在雨中望着上面的窗户,在他们的故事里,是点睛之笔。就在两个人在前往教堂结婚的路上,才互相问了对方的名字。一切看似那么的荒诞不经,但却是那么的合情合理。就是这一段闪电般成熟起来的爱情,却让一个人因为爱对方而献出了所有,让另一个人把这份爱情永远的放在自己的心里。
这个故事中的所有人,是宽容的,罗伊的叔叔,妈妈。不宽容的是一种无形的氛围,一种可以把人窒息的氛围。这种氛围牢牢地控制着每一个人,每一个人都在无可奈何的看着残酷的现实一步一步走来。不过从某种意义上来说,马拉的死,恰恰就是这个故事中最动人的部分。正是她的死,才构成了这个故事的不朽,反之,马拉会成为又一个简爱,只不过马拉面对的罗伊,比简爱面对的罗切斯特更加浪漫一点,脾气更加好一点而已。而简爱的故事,实在不能算得上一个伟大,经典的爱情故事。我们把它叫做个人奋斗的经典之作还差不多,或者叫对于维多利亚时代教育制度以及门第观念的批判也行。
英国女作家,简。奥斯丁认为,婚姻应该是门当户对的。可罗伊和马拉的故事已经超出了门当户对的范围。如果我们把这位大作家从坟墓中唤醒,让他对魂断蓝桥的爱情故事进行一番评价,我想她也会感到很为难的,真的很为难。
结论,永远的爱情,无法长相厮守的爱情,才会是永远的爱情。
(五)爱斯梅哈尔达和撞钟人 经典指数 800
在阴森森的巴黎圣母院里的那个撞钟人,被人们称之为野兽,那个为避祸逃到了里面的波希米亚女人,被人们称为美女。美女和野兽的爱情,本来就是一种不对称的爱情,并且反差如此之大,给人的直观感觉,并非像这个伟大的爱情故事一样,那么令人动情,令人回味。但是在几百年以后的钟楼里,当人们看到了两具抱在一起的尸体时,一份感动,对爱情的感动,不禁油然而生。美女和野兽,在生命的最后一刻,抱在了一起,并且永远没有分开。
撞钟人对爱斯梅哈尔达的爱,已经超出了肯为之献身的范围。也许在撞种人看见她的第一眼,就已经把自己的生命交在了她的手里,随时准备为他在心中所爱的女人献出一切。虽然他知道也许这不会得到相应的回报,也许自己的死,只不过是像飞入大海的一片羽毛,只会无声无息,不会有人注意到。但幸运的是,他得到了对方的爱,并且是永远的。
也许这爱情不像其他的才子佳人的爱情故事一样,那么让人易于接受,那么完美。但这也是一个关于爱情的故事,而且这个爱情故事还是那么的震撼人心,那么的超凡脱俗。大革命时代的人文精神,在这里一览无遗。这个故事告诉了我们,即便是畜生一样的人,也有爱与被爱的权利。即使距离再远的两个人,也会有机会注视同一目标,也会被爱情的彩带,连在一起。
结论,最真实的荒诞的爱,也许爱这个字,本无所谓什么荒诞和真实,只要是爱
(六)幸子和光夫 经典指数 850
八十年带上半叶,风靡了整个华夏大地的故事,从拖沓窘长的剧情中可以看出,这部电视剧主要所讲的还不是关于爱情,而是更加注目于亲情。剧中两人相爱,只是为了今后的亲情悲剧做了一个很好的铺垫。尽管这个铺垫很巧妙,但是我们不得不承认它很残酷。好像是要逼着人们在爱情和亲情之间作出一个选择,这样的选择,对人类来说,是勉为其难的。所幸的是编剧在关键时刻,让幸子悄悄地死去,解除了我们的为难。我们的思想,在跨越人类道德最终底线的那一刻,被编剧生生的拉了回来。
光夫和性子的爱,在当时人们的眼里总是会有两种解释,一种解释就是,在两人得知他们是兄妹的时候,他们的爱情一下子转变成了兄妹之爱。还有一种就是,他们的爱是真正的爱,只是在现实生活中,没有办法处理,所以只好让其中的一个人死去。幸子最后在飘满樱花的湖中小船上,在光夫的怀里静静的死去,也可以有两种解释,一是他死在自己哥哥的怀里,一是他死在自己爱人的怀里。可叹的是,当时抱前一种观点的人,占到了绝大多数。
其实,爱就是爱,不会转化为其它的什么。这一对男女,没有人会怀疑是天生的一对,即便在真实生活中,这两位演员也是一对夫妻。这就是编剧的可恶之处,他把任何条件都设定为对爱情的发展有利,唯独把一个条件定死了,这是先天的,后天努力所无法改变的。那就是,他们是兄妹。
可怜一对相爱的人,他们为了爱情付出了很多,但没有多少人会理解他们,只有把那一份真挚的爱情藏在心底,一个辞世而去,一个面对一汪秀丽的湖水,回味着逝去的爱情。
结论,不可能的爱情,我们的这个社会还需要进化,我们要思考一下,道德和爱情,谁能超越谁。
(七)梁山伯与祝英台 经典指数 900
这是个在中国民间流传最广的爱情故事。某种程度上,还是被今天的一般人在爱情心理上所认同。不过今天的按男女们不会像那时候的梁祝那么的傻,竟然会坐以待毙,双双化蝶。在一个互联网和移动电话盛行的现代社会,男女之间的交往不会再像古代社会那么困难,那么的低效率。人们的心理承受能力也不会象过去那么脆弱。我们直到今天还是能够感觉到当时的那一对男女在相思时候的痛苦。其实这种痛苦在你回味的时候是很甜蜜的,哪怕付出生命的代价,这种代价所获得的收益,也是任何东西所无法代替的。现代男女的爱情故事之所以没有办法成为伟大的爱情,就是他们付出的太少,绝对不肯为之献身。毕竟,生命,是现代人可以付出代价的底线,不是可以轻易超越的。
这个故事中的求爱手段,也是让我们感到兴奋的地方。女主人公女扮男装,用一些景物和实物来进行比喻,向男主人公求爱。这一段故事的描写,是人们最津津乐道的。因为这不管从形式上还是内容上,都超越了故事发生的那个时代所能包含的一切特征,有一丝淡淡的现代主义的味道。浅薄的研究者,会从中得出一个里面有同性恋倾向的描写。更深一步来想,这就是爱情的伟大力量,可以超越一切时代和观念的束缚,让人们作出不被当时社会理解但能被后代津津乐道的事情。
画龙点睛之笔,就是里面的化蝶。卑微的生命往往代表着自由。向往爱情和自由的人们,往往会这样去做,因为这两点,就是他们的生命。
结论,无奈的爱情,只能在另外一个世界中寻找他们爱情的延续。
(八)莫瑞尔和保罗 经典指数 900
没有人会否认母爱的伟大,但母爱是单方面的。如果母爱可以得到回报,那也只能是来自儿女的儿女之爱。但劳伦斯在“儿子与情人”中,对这一观念进行了强有力的挑战。没有人会否认劳伦斯是二十世纪最重要的文学家,也没有人会否认弗洛伊德是二十世纪最伟大的心理学家。但能够对这部作品所讲述的故事公开表示认同的,恐怕远远不如对这部作品进行研究的人多。
莫瑞尔太太把自己身上涌动的激情,倾注到了自己的儿子身上,自己也从儿子的身上,获取从自己丈夫身上得不到的爱情感觉。对于这位莫瑞尔太太来说,在她心底里,早已把自己的儿子当作自己理想中的爱人,她照顾他,抚养他,所做的一切,都超出了一位母亲所能做的一切。她是真正把自己的儿子当作了自己爱的对象,这种爱,不是单纯的亲情之爱,更大程度上来说是一种爱情的体现。而保罗,也在心目中把自己的母亲当作了自己的爱人,以至于他觉得,只要他母亲在,他在次生就不可能找到自己的爱人。因为这个爱人就在他身边,那就是他的母亲。
在这部争议很大的作品里,人们探讨的更多的是心理层次和社会层次方面的东西。很多的时候把融在里面的爱情,解释为一种情节(Odipus Complex),这个源于古希腊的英语词汇,虽然历史很悠久,但却让人们研究了几千年,直到今天,还没有一个真正的结果。也许人类不敢正视自己身上存在着的和现实社会不协调的东西,也许这个社会已经形成了一个定势,没有人能够去打破。我们只有沿着自己为自己设定的道路,走下去,永不回头。
结论,最有人伦的不伦之爱,这是一种爱情,最起码也要算是爱情之树上的一个分叉。
(九)刘欣和董贤 经典指数 950
断袖之癖,是我们在大一点的时候所学到的一个成语。从字面上来看,十分的隐晦,不去做一番考证还真是不能明白其中的真意。刘欣,这个西汉王朝的昏君,竟然是一个至真至爱之人,在两人同榻而眠的时候,当他有要事要离开时,董贤的身体压住了他宽大的袖子,他不忍吵醒自己的爱人,断袖以离去,这一分细致,对爱人的那一份真爱,足以使任何时代的任何人,都感到汗颜。当然他的另一半,董贤,也是一样,他在哀帝刘欣死去的第二天,就在家中自杀,死的时候,他还保留着哀帝留给他的玉玺。不幸的是,这一对恋人是两个男人,也就是被我们今天很多所谓的正人君子所不齿的同性恋。
我们现在的很多人,一看到断袖之癖这个成语,都会理解成为不太好的方面,而忽略了其中对爱情的诠释。没有什么人规定了爱情是属于异性之间的专利,同性之间的爱情也许会更加真挚,更加荡气回肠。刘欣和董贤,就是属于这种爱情的代表。
爱之真,情之切,试想我们今天,即便是在异性之间,能对对方如此体贴,如此忠诚的爱侣,也并不多见。这就是源于爱的举动,这举动背后的动力,不可能是别的,只能是爱情。
在人类历史发展的长河中,同性之爱已经不是一份年青的爱情,从古希腊人对与同性之爱的宽容态度,到中国大唐盛世时人们口无遮拦地对此进行谈论并亲身实践,直到现代西方国家从社会观念方面,法律方面,对此所作出的宽容调整,我们可以看出,这不是一种属于畸形的爱情,只是在漫长的历史发展过程中,没有得到应有的认同,没有得到良好的发展。
刘欣和董贤的故事,应该属于伟大的爱。
结论,同性之爱,也会是动人的,伟大的,催人泪下的。
(十)美人鱼和王子 经典指数 1000
这个来自于北欧的爱情故事,当然是一个最简单的爱情故事,但却是所有的爱情故事中最为不朽的。我们可能在很小的时候就已经知道了这个故事。但是那个时候的我们,还没有意识到这是一个伟大的爱情故事,只是很为那个小美人鱼惋惜,我们并不知道人生,包括爱情,本来就是一场残酷的循环,总是要有人去做我们自己做不到的事情。一个人,爱一个人,竟然能够不让他知道,承受着爱他所带来的一切痛苦,还要承受他的漠视,承受着他去爱别的人,最后还要为拯救她所爱的人献出自己的生命。这样的爱情,真的是前无古人,后无来者。幸亏这位可敬的丹麦人描述的只是一个童话中的故事,否则我们这个世界,可真的是进化到了一种极高的境界。
大海是蓝色的,这种蓝色,有一种别样的情调。在这样一个环境下,催生出这样一个伟大的爱情故事,总是理所当然。小美人鱼美丽的脸上,除了苍白之外,还有对爱人的挂念。她修长的美腿上,除了为爱流出的鲜血以外,还有为爱不顾一切,迈出的艰难步伐。
这个故事,是经典中的经典。我们不能指望在这个世界上会出现哪怕一个可堪与之媲美的爱情故事,尤其是现代。但那毕竟是我们的一个理想,这种理想总是在我们的前方闪耀,指引着我们在爱情的海洋上前进的道路。
结论,为爱献身的爱,能够为爱一时献身,是一种境界,能够为爱长久献身,是一种神奇
Feb
23
如果你对一个人太好,结果可能有两种,
一是她最终被感动,二是她越发看不起你。
我们常常谈及爱的艺术,
比如怎样与一个人相处,是爱的温度恰到好处。
实质上,爱情本本没有那么多的道理,亦没有规律可循。
往往是这样,她爱你,就随便你怎么折腾;
她不爱你,你再小心翼翼也得不了满分。
也就是说,这一切根本不取决于你,你的爱情命运有对方来掌控。
怎么让她对你多一些包容多一些爱,
怎么让你所有的错在她面前都不值一提,
她你理直气壮地做天使,即使全世界都抛弃你,她也将逆奉若明珠?
这也不是你能控制的,听起来是不是很迷惑?
确实是这样。
她爱不爱你,有多爱,能到哪一个程度,基本与你无关。
并非因为你好,你美,才会收获爱,
并非因为你好,你美,才会收获爱,
并非优点就能直接导致爱情产生。
引发爱情的因素,我认为是一个莫名其妙的东西,
就像我们的口味,有人爱萝卜,有人爱青菜,还有的,甚至爱大蒜,
有些习惯与生俱来,
就像我们对于颜色的偏好,为什么你爱黑,而她喜欢红,
这不需要刨根问底。
就像米兰。昆德拉的《生活在别处》,男主人公爱上了臭姑娘,她说,我就是爱你的红头发,爱你的雀斑。
既然我们不能决定对爱不爱自己,
那么,对于爱情我们似乎除了坐以待毙什么也不能做了。
这当然是消极的想法,
很多光明健康的思想一直在指导着我们在爱海里英勇搏斗,
比如奉献啊、牺牲啊、付出啊,
但很多时候,这些都是徒劳的无用功,
你越是委曲求全,想要迁就对方讨好对方,将自己所有的一切都捧出,她越是轻视你,甚至反感厌恶
如果你对一个人太好,结果可能有两种,
一是她最终被感动,二是她越发看不起你。
我们常常谈及爱的艺术,
比如怎样与一个人相处,是爱的温度恰到好处。
实质上,爱情本本没有那么多的道理,亦没有规律可循。
往往是这样,她爱你,就随便你怎么折腾;
她不爱你,你再小心翼翼也得不了满分。
也就是说,这一切根本不取决于你,你的爱情命运有对方来掌控。
怎么让她对你多一些包容多一些爱,
怎么让你所有的错在她面前都不值一提,
她你理直气壮地做天使,即使全世界都抛弃你,她也将逆奉若明珠?
这也不是你能控制的,听起来是不是很迷惑?
确实是这样。
她爱不爱你,有多爱,能到哪一个程度,基本与你无关。
并非因为你好,你美,才会收获爱,
并非因为你好,你美,才会收获爱,
并非优点就能直接导致爱情产生。
引发爱情的因素,我认为是一个莫名其妙的东西,
就像我们的口味,有人爱萝卜,有人爱青菜,还有的,甚至爱大蒜,
有些习惯与生俱来,
就像我们对于颜色的偏好,为什么你爱黑,而她喜欢红,
这不需要刨根问底。
就像米兰。昆德拉的《生活在别处》,男主人公爱上了臭姑娘,她说,我就是爱你的红头发,爱你的雀斑。
既然我们不能决定对爱不爱自己,
那么,对于爱情我们似乎除了坐以待毙什么也不能做了。
这当然是消极的想法,
很多光明健康的思想一直在指导着我们在爱海里英勇搏斗,
比如奉献啊、牺牲啊、付出啊,
但很多时候,这些都是徒劳的无用功,
你越是委曲求全,想要迁就对方讨好对方,将自己所有的一切都捧出,她越是轻视你,甚至反感厌恶,这是一种反作用力。
我承认,确实有一部分人对于爱情死缠烂打而获得了成功,
就像《一百零一次求婚》里,
美丽的女主角最终应成了卡西莫多是男人的求婚,
以此传递了一个信息,精诚所至,金石为开。
不,我不认可这样的故事,
因为这明明就不是爱,
如果仅仅是感动,会幸福吗?
如果只有单向的爱,会幸福吗?
在我看来,爱就是两种无可解释的感觉汇成一线,说不清道不明,莫名其妙——这就对了。
,这是一种反作用力。
我承认,确实有一部分人对于爱情死缠烂打而获得了成功,
就像《一百零一次求婚》里,
美丽的女主角最终应成了卡西莫多是男人的求婚,
以此传递了一个信息,精诚所至,金石为开。
不,我不认可这样的故事,
因为这明明就不是爱,
如果仅仅是感动,会幸福吗?
如果只有单向的爱,会幸福吗?
在我看来,爱就是两种无可解释的感觉汇成一线,说不清道不明,莫名其妙——这就对了。
一是她最终被感动,二是她越发看不起你。
我们常常谈及爱的艺术,
比如怎样与一个人相处,是爱的温度恰到好处。
实质上,爱情本本没有那么多的道理,亦没有规律可循。
往往是这样,她爱你,就随便你怎么折腾;
她不爱你,你再小心翼翼也得不了满分。
也就是说,这一切根本不取决于你,你的爱情命运有对方来掌控。
怎么让她对你多一些包容多一些爱,
怎么让你所有的错在她面前都不值一提,
她你理直气壮地做天使,即使全世界都抛弃你,她也将逆奉若明珠?
这也不是你能控制的,听起来是不是很迷惑?
确实是这样。
她爱不爱你,有多爱,能到哪一个程度,基本与你无关。
并非因为你好,你美,才会收获爱,
并非因为你好,你美,才会收获爱,
并非优点就能直接导致爱情产生。
引发爱情的因素,我认为是一个莫名其妙的东西,
就像我们的口味,有人爱萝卜,有人爱青菜,还有的,甚至爱大蒜,
有些习惯与生俱来,
就像我们对于颜色的偏好,为什么你爱黑,而她喜欢红,
这不需要刨根问底。
就像米兰。昆德拉的《生活在别处》,男主人公爱上了臭姑娘,她说,我就是爱你的红头发,爱你的雀斑。
既然我们不能决定对爱不爱自己,
那么,对于爱情我们似乎除了坐以待毙什么也不能做了。
这当然是消极的想法,
很多光明健康的思想一直在指导着我们在爱海里英勇搏斗,
比如奉献啊、牺牲啊、付出啊,
但很多时候,这些都是徒劳的无用功,
你越是委曲求全,想要迁就对方讨好对方,将自己所有的一切都捧出,她越是轻视你,甚至反感厌恶
如果你对一个人太好,结果可能有两种,
一是她最终被感动,二是她越发看不起你。
我们常常谈及爱的艺术,
比如怎样与一个人相处,是爱的温度恰到好处。
实质上,爱情本本没有那么多的道理,亦没有规律可循。
往往是这样,她爱你,就随便你怎么折腾;
她不爱你,你再小心翼翼也得不了满分。
也就是说,这一切根本不取决于你,你的爱情命运有对方来掌控。
怎么让她对你多一些包容多一些爱,
怎么让你所有的错在她面前都不值一提,
她你理直气壮地做天使,即使全世界都抛弃你,她也将逆奉若明珠?
这也不是你能控制的,听起来是不是很迷惑?
确实是这样。
她爱不爱你,有多爱,能到哪一个程度,基本与你无关。
并非因为你好,你美,才会收获爱,
并非因为你好,你美,才会收获爱,
并非优点就能直接导致爱情产生。
引发爱情的因素,我认为是一个莫名其妙的东西,
就像我们的口味,有人爱萝卜,有人爱青菜,还有的,甚至爱大蒜,
有些习惯与生俱来,
就像我们对于颜色的偏好,为什么你爱黑,而她喜欢红,
这不需要刨根问底。
就像米兰。昆德拉的《生活在别处》,男主人公爱上了臭姑娘,她说,我就是爱你的红头发,爱你的雀斑。
既然我们不能决定对爱不爱自己,
那么,对于爱情我们似乎除了坐以待毙什么也不能做了。
这当然是消极的想法,
很多光明健康的思想一直在指导着我们在爱海里英勇搏斗,
比如奉献啊、牺牲啊、付出啊,
但很多时候,这些都是徒劳的无用功,
你越是委曲求全,想要迁就对方讨好对方,将自己所有的一切都捧出,她越是轻视你,甚至反感厌恶,这是一种反作用力。
我承认,确实有一部分人对于爱情死缠烂打而获得了成功,
就像《一百零一次求婚》里,
美丽的女主角最终应成了卡西莫多是男人的求婚,
以此传递了一个信息,精诚所至,金石为开。
不,我不认可这样的故事,
因为这明明就不是爱,
如果仅仅是感动,会幸福吗?
如果只有单向的爱,会幸福吗?
在我看来,爱就是两种无可解释的感觉汇成一线,说不清道不明,莫名其妙——这就对了。
,这是一种反作用力。
我承认,确实有一部分人对于爱情死缠烂打而获得了成功,
就像《一百零一次求婚》里,
美丽的女主角最终应成了卡西莫多是男人的求婚,
以此传递了一个信息,精诚所至,金石为开。
不,我不认可这样的故事,
因为这明明就不是爱,
如果仅仅是感动,会幸福吗?
如果只有单向的爱,会幸福吗?
在我看来,爱就是两种无可解释的感觉汇成一线,说不清道不明,莫名其妙——这就对了。
Feb
23
3. 使用POST方式
其实POST方式跟Get方式是比较类似的,只是在执行Ajax的时候稍有不同,我们简单讲述一下。
假设有一个用户输入资料的表单,我们在无刷新的情况下把用户资料保存到数据库中,同时给用户一个成功的提示。
//构建一个表单,表单中不需要action、method之类的属性,全部由ajax来搞定了。
<form name="user_info">
姓名:<input type="text" name="user_name" /><br />
年龄:<input type="text" name="user_age" /><br />
性别:<input type="text" name="user_sex" /><br />
<input type="button" value="提交表单" onClick="saveUserInfo()">
</form>
//构建一个接受返回信息的层:
<div id="msg"></div>
我们看到上面的form表单里没有需要提交目标等信息,并且提交按钮的类型也只是button,那么所有操作都是靠onClick事件中的saveUserInfo()函数来执行了。我们描述一下这个函数:
CODE:
function saveUserInfo()
{
//获取接受返回信息层
var msg = document.getElementById("msg");
//获取表单对象和用户信息值
var f = document.user_info;
var userName = f.user_name.value;
var userAge = f.user_age.value;
var userSex = f.user_sex.value;
//接收表单的URL地址
var url = "/save_info.php";
//需要POST的值,把每个变量都通过&来联接
var postStr = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;
//实例化Ajax
var ajax = InitAjax();
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
//获取执行状态
ajax.onreadystatechange = function() {
//如果执行状态成功,那么就把返回信息写到指定的层里
if (ajax.readyState == 4 && ajax.status == 200) {
msg.innerHTML = ajax.responseText;
}
}
}
大致使用POST方式的过程就是这样,当然,实际开发情况可能会更复杂,这就需要开发者去慢慢琢磨。
4. 异步回调(伪Ajax方式)
一般情况下,使用Get、Post方式的Ajax我们都能够解决目前问题,只是应用复杂程度,当然,在开发中我们也许会碰到无法使用Ajax的时候,但是我们又需要模拟Ajax的效果,那么就可以使用伪Ajax的方式来实现我们的需求。
伪Ajax大致原理就是说我们还是普通的表单提交,或者别的什么的,但是我们却是把提交的值目标是一个浮动框架,这样页面就不刷新了,但是呢,我们又需要看到我们的执行结果,当然可以使用JavaScript来模拟提示信息,但是,这不是真实的,所以我们就需要我们的执行结果来异步回调,告诉我们执行结果是怎么样的。
假设我们的需求是需要上传一张图片,并且,需要知道图片上传后的状态,比如,是否上传成功、文件格式是否正确、文件大小是否正确等等。那么我们就需要我们的目标窗口把执行结果返回来给我们的窗口,这样就能够顺利的模拟一次Ajax调用的过程。
以下代码稍微多一点, 并且涉及Smarty模板技术,如果不太了解,请阅读相关技术资料。
上传文件:upload.html
//上传表单,指定target属性为浮动框架iframe1
<form action="/upload.php" method="post" enctype="multipart/form-data" name="upload_img" target="iframe1">
选择要上传的图片:<input type="file" name="image"><br />
<input type="submit" value="上传图片">
</form>
//显示提示信息的层
<div id="message" style="display:none"></div>
//用来做目标窗口的浮动框架
<iframe name="iframe1" width="0" height="0" scrolling="no"></iframe>
处理上传的PHP文件:upload.php
upload.php:
<?php
/* 定义常量 */
//定义允许上传的MIME格式
define("UPLOAD_IMAGE_MIME", "image/pjpeg,image/jpg,image/jpeg,image/gif,image/x-png,image/png");
//图片允许大小,字节
define("UPLOAD_IMAGE_SIZE", 102400);
//图片大小用KB为单位来表示
define("UPLOAD_IMAGE_SIZE_KB", 100);
//图片上传的路径
define("UPLOAD_IMAGE_PATH", "./upload/");
//获取允许的图像格式
$mime = explode(",", USER_FACE_MIME);
$is_vaild = 0;
//遍历所有允许格式
foreach ($mime as $type)
{
if ($_FILES["image"]["type"] == $type)
{
$is_vaild = 1;
}
}
//如果格式正确,并且没有超过大小就上传上去
if ($is_vaild && $_FILES["image"]["size"]<=USER_FACE_SIZE && $_FILES["image"]["size"]>0)
{
if (move_uploaded_file($_FILES["image"]["tmp_name"], USER_IMAGE_PATH . $_FILES["image"]["name"]))
{
$upload_msg ="上传图片成功!";
}
else
{
$upload_msg = "上传图片文件失败";
}
}
else
{
$upload_msg = "上传图片失败,可能是文件超过". USER_FACE_SIZE_KB ."KB、或者图片文件为空、或文件格式不正确";
}
//解析模板文件
$smarty->assign("upload_msg", $upload_msg);
$smarty->display("upload.tpl");
?>
模板文件:upload.tpl:
{if $upload_msg != ""}
callbackMessage("");
//回调的JavaScript函数,用来在父窗口显示信息
function callbackMessage(msg)
{
//把父窗口显示消息的层打开
parent.document.getElementById("message").style.display = "block";
//把本窗口获取的消息写上去
parent.document.getElementById("message").innerHTML = msg;
//并且设置为3秒后自动关闭父窗口的消息显示
setTimeout("parent.document.getElementById("message").style.display = "none"", 3000);
}
使用异步回调的方式过程有点复杂,但是基本实现了Ajax、以及信息提示的功能,如果接受模板的信息提示比较多,那么还可以通过设置层的方式来处理,这个随机应变吧。
[结束语]
这是一种非常良好的Web开发技术,虽然出现时间比较长,但是到现在才慢慢火起来,也希望带给Web开发界一次变革,让我们朝RIA(富客户端)的开发迈进,当然,任何东西有利也有弊端,如果过多的使用JavaScript,那么客户端将非常臃肿,不利于用户的浏览体验,如何在做到快速的亲前提下,还能够做到好的用户体验,这就需要Web开发者共同努力了。
其实POST方式跟Get方式是比较类似的,只是在执行Ajax的时候稍有不同,我们简单讲述一下。
假设有一个用户输入资料的表单,我们在无刷新的情况下把用户资料保存到数据库中,同时给用户一个成功的提示。
//构建一个表单,表单中不需要action、method之类的属性,全部由ajax来搞定了。
<form name="user_info">
姓名:<input type="text" name="user_name" /><br />
年龄:<input type="text" name="user_age" /><br />
性别:<input type="text" name="user_sex" /><br />
<input type="button" value="提交表单" onClick="saveUserInfo()">
</form>
//构建一个接受返回信息的层:
<div id="msg"></div>
我们看到上面的form表单里没有需要提交目标等信息,并且提交按钮的类型也只是button,那么所有操作都是靠onClick事件中的saveUserInfo()函数来执行了。我们描述一下这个函数:
CODE:
function saveUserInfo()
{
//获取接受返回信息层
var msg = document.getElementById("msg");
//获取表单对象和用户信息值
var f = document.user_info;
var userName = f.user_name.value;
var userAge = f.user_age.value;
var userSex = f.user_sex.value;
//接收表单的URL地址
var url = "/save_info.php";
//需要POST的值,把每个变量都通过&来联接
var postStr = "user_name="+ userName +"&user_age="+ userAge +"&user_sex="+ userSex;
//实例化Ajax
var ajax = InitAjax();
//通过Post方式打开连接
ajax.open("POST", url, true);
//定义传输的文件HTTP头信息
ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//发送POST数据
ajax.send(postStr);
//获取执行状态
ajax.onreadystatechange = function() {
//如果执行状态成功,那么就把返回信息写到指定的层里
if (ajax.readyState == 4 && ajax.status == 200) {
msg.innerHTML = ajax.responseText;
}
}
}
大致使用POST方式的过程就是这样,当然,实际开发情况可能会更复杂,这就需要开发者去慢慢琢磨。
4. 异步回调(伪Ajax方式)
一般情况下,使用Get、Post方式的Ajax我们都能够解决目前问题,只是应用复杂程度,当然,在开发中我们也许会碰到无法使用Ajax的时候,但是我们又需要模拟Ajax的效果,那么就可以使用伪Ajax的方式来实现我们的需求。
伪Ajax大致原理就是说我们还是普通的表单提交,或者别的什么的,但是我们却是把提交的值目标是一个浮动框架,这样页面就不刷新了,但是呢,我们又需要看到我们的执行结果,当然可以使用JavaScript来模拟提示信息,但是,这不是真实的,所以我们就需要我们的执行结果来异步回调,告诉我们执行结果是怎么样的。
假设我们的需求是需要上传一张图片,并且,需要知道图片上传后的状态,比如,是否上传成功、文件格式是否正确、文件大小是否正确等等。那么我们就需要我们的目标窗口把执行结果返回来给我们的窗口,这样就能够顺利的模拟一次Ajax调用的过程。
以下代码稍微多一点, 并且涉及Smarty模板技术,如果不太了解,请阅读相关技术资料。
上传文件:upload.html
//上传表单,指定target属性为浮动框架iframe1
<form action="/upload.php" method="post" enctype="multipart/form-data" name="upload_img" target="iframe1">
选择要上传的图片:<input type="file" name="image"><br />
<input type="submit" value="上传图片">
</form>
//显示提示信息的层
<div id="message" style="display:none"></div>
//用来做目标窗口的浮动框架
<iframe name="iframe1" width="0" height="0" scrolling="no"></iframe>
处理上传的PHP文件:upload.php
upload.php:
<?php
/* 定义常量 */
//定义允许上传的MIME格式
define("UPLOAD_IMAGE_MIME", "image/pjpeg,image/jpg,image/jpeg,image/gif,image/x-png,image/png");
//图片允许大小,字节
define("UPLOAD_IMAGE_SIZE", 102400);
//图片大小用KB为单位来表示
define("UPLOAD_IMAGE_SIZE_KB", 100);
//图片上传的路径
define("UPLOAD_IMAGE_PATH", "./upload/");
//获取允许的图像格式
$mime = explode(",", USER_FACE_MIME);
$is_vaild = 0;
//遍历所有允许格式
foreach ($mime as $type)
{
if ($_FILES["image"]["type"] == $type)
{
$is_vaild = 1;
}
}
//如果格式正确,并且没有超过大小就上传上去
if ($is_vaild && $_FILES["image"]["size"]<=USER_FACE_SIZE && $_FILES["image"]["size"]>0)
{
if (move_uploaded_file($_FILES["image"]["tmp_name"], USER_IMAGE_PATH . $_FILES["image"]["name"]))
{
$upload_msg ="上传图片成功!";
}
else
{
$upload_msg = "上传图片文件失败";
}
}
else
{
$upload_msg = "上传图片失败,可能是文件超过". USER_FACE_SIZE_KB ."KB、或者图片文件为空、或文件格式不正确";
}
//解析模板文件
$smarty->assign("upload_msg", $upload_msg);
$smarty->display("upload.tpl");
?>
模板文件:upload.tpl:
{if $upload_msg != ""}
callbackMessage("");
//回调的JavaScript函数,用来在父窗口显示信息
function callbackMessage(msg)
{
//把父窗口显示消息的层打开
parent.document.getElementById("message").style.display = "block";
//把本窗口获取的消息写上去
parent.document.getElementById("message").innerHTML = msg;
//并且设置为3秒后自动关闭父窗口的消息显示
setTimeout("parent.document.getElementById("message").style.display = "none"", 3000);
}
使用异步回调的方式过程有点复杂,但是基本实现了Ajax、以及信息提示的功能,如果接受模板的信息提示比较多,那么还可以通过设置层的方式来处理,这个随机应变吧。
[结束语]
这是一种非常良好的Web开发技术,虽然出现时间比较长,但是到现在才慢慢火起来,也希望带给Web开发界一次变革,让我们朝RIA(富客户端)的开发迈进,当然,任何东西有利也有弊端,如果过多的使用JavaScript,那么客户端将非常臃肿,不利于用户的浏览体验,如何在做到快速的亲前提下,还能够做到好的用户体验,这就需要Web开发者共同努力了。
Feb
23
AJAX无疑是2005年炒的最热的Web开发技术之一,当然,这个功劳离不开Google。我只是一个普通开发者,使用AJAX的地方不是特别多,我就简单的把我使用的心得说一下。(本文假设用户已经具有JavaScript、HTML、CSS等基本的Web开发能力)
[AJAX介绍]
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术——包括级联样式表(CSS)、JavaScript、XHTML、XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件。
[AJAX执行原理]
一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。
当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。
[AJAX实际应用]
1. 初始化Ajax
Ajax实际上就是调用了XMLHttpRequest对象,那么首先我们的就必须调用这个对象,我们构建一个初始化Ajax的函数:
/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!="undefined") {
ajax = new XMLHttpRequest();
}
return ajax;
}
你也许会说,这个代码因为要调用XMLHTTP组件,是不是只有IE浏览器能使,不是的经我试验,Firefox也是能使用的。
那么我们在执行任何Ajax操作之前,都必须先调用我们的InitAjax()函数来实例化一个Ajax对象。
2. 使用Get方式
现在我们第一步来执行一个Get请求,加入我们需要获取 /show.php?id=1的数据,那么我们应该怎么做呢?
假设有一个链接:<a href="/show.php?id=1">新闻1</a>,我点该链接的时候,不想任何刷新就能够看到链接的内容,那么我们该怎么做呢?
//将链接改为:
<a href="#" onClick="getNews(1)">新闻1</a>
//并且设置一个接收新闻的层,并且设置为不显示:
<div id="show_news"></div>
同时构造相应的JavaScript函数:
function getNews(newsID)
{
//如果没有把参数newsID传进来
if (typeof(newsID) == "undefined")
{
return false;
}
//需要进行Ajax的URL地址
var url = "/show.php?id="+ newsID;
//获取新闻显示层的位置
var show = document.getElementById("show_news");
//实例化Ajax对象
var ajax = InitAjax();
//使用Get方式进行请求
ajax.open("GET", url, true);
//获取执行状态
ajax.onreadystatechange = function() {
//如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML = ajax.responseText;
}
}
//发送空
ajax.send(null);
}
那么当,当用户点击“新闻1”这个链接的时候,在下面对应的层将显示获取的内容,而且页面没有任何刷新。当然,我们上面省略了show.php这个文件,我们只是假设show.php文件存在,并且能够正常工作的从数据库中把id为1的新闻提取出来。
这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更多使用的是POST方式,这个下面将讲述。
[AJAX介绍]
Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。
异步JavaScript和XML(AJAX)不是什么新技术,而是使用几种现有技术——包括级联样式表(CSS)、JavaScript、XHTML、XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件。
[AJAX执行原理]
一个Ajax交互从一个称为XMLHttpRequest的JavaScript对象开始。如同名字所暗示的,它允许一个客户端脚本来执行HTTP请求,并且将会解析一个XML格式的服务器响应。Ajax处理过程中的第一步是创建一个XMLHttpRequest实例。使用HTTP方法(GET或POST)来处理请求,并将目标URL设置到XMLHttpRequest对象上。
当你发送HTTP请求,你不希望浏览器挂起并等待服务器的响应,取而代之的是,你希望通过页面继续响应用户的界面交互,并在服务器响应真正到达后处理它们。要完成它,你可以向XMLHttpRequest注册一个回调函数,并异步地派发XMLHttpRequest请求。控制权马上就被返回到浏览器,当服务器响应到达时,回调函数将会被调用。
[AJAX实际应用]
1. 初始化Ajax
Ajax实际上就是调用了XMLHttpRequest对象,那么首先我们的就必须调用这个对象,我们构建一个初始化Ajax的函数:
/**
* 初始化一个xmlhttp对象
*/
function InitAjax()
{
var ajax=false;
try {
ajax = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
ajax = new ActiveXObject("Microsoft.XMLHTTP");
} catch (E) {
ajax = false;
}
}
if (!ajax && typeof XMLHttpRequest!="undefined") {
ajax = new XMLHttpRequest();
}
return ajax;
}
你也许会说,这个代码因为要调用XMLHTTP组件,是不是只有IE浏览器能使,不是的经我试验,Firefox也是能使用的。
那么我们在执行任何Ajax操作之前,都必须先调用我们的InitAjax()函数来实例化一个Ajax对象。
2. 使用Get方式
现在我们第一步来执行一个Get请求,加入我们需要获取 /show.php?id=1的数据,那么我们应该怎么做呢?
假设有一个链接:<a href="/show.php?id=1">新闻1</a>,我点该链接的时候,不想任何刷新就能够看到链接的内容,那么我们该怎么做呢?
//将链接改为:
<a href="#" onClick="getNews(1)">新闻1</a>
//并且设置一个接收新闻的层,并且设置为不显示:
<div id="show_news"></div>
同时构造相应的JavaScript函数:
function getNews(newsID)
{
//如果没有把参数newsID传进来
if (typeof(newsID) == "undefined")
{
return false;
}
//需要进行Ajax的URL地址
var url = "/show.php?id="+ newsID;
//获取新闻显示层的位置
var show = document.getElementById("show_news");
//实例化Ajax对象
var ajax = InitAjax();
//使用Get方式进行请求
ajax.open("GET", url, true);
//获取执行状态
ajax.onreadystatechange = function() {
//如果执行是状态正常,那么就把返回的内容赋值给上面指定的层
if (ajax.readyState == 4 && ajax.status == 200) {
show.innerHTML = ajax.responseText;
}
}
//发送空
ajax.send(null);
}
那么当,当用户点击“新闻1”这个链接的时候,在下面对应的层将显示获取的内容,而且页面没有任何刷新。当然,我们上面省略了show.php这个文件,我们只是假设show.php文件存在,并且能够正常工作的从数据库中把id为1的新闻提取出来。
这种方式适应于页面中任何元素,包括表单等等,其实在应用中,对表单的操作是比较多的,针对表单,更多使用的是POST方式,这个下面将讲述。
Feb
23
1. 现在的日期时间命令是
<%=now%> 即可
2.ASP取得表格(from)数据输入的方法,是使用一个内置的对象(object)—Requect,
它以get,post而异。
3.若要自己用VB或其它语言编写,.dll文件供ASP使用需将DLL文件注册方可:DOS下
输入 regsbr32 *.dll
4.显示五个重复的句子,字体越来越大
<% for i=1 to 5 %>
<font size=<% =i %> color=#00ffff>
快速ASP
</font>
<br>
<% next %>
5.传送字符串到用户端
response.write string
如:<% response.write "Welcome" %>
6.链接到指定的URL地址
response.redirect url
如:
<% response.redirect "homepage.asp"
%>
*但是如果此.ASP的文件内容已经传送到用户断,则再用redirect时会发生错误。
7.其他语言与ASP的结合:
如:早上显示早安,下午显示你好
<%
if time>+#12:00:00 AM# and time<#12:00:00 PM #
then
greeting="早安!"
else
greeting="你好!"
end if
%>
<%=greeting %>
8.<script>标记在ASP中的应用
例:
<html>
<body>
<% call function1 %>
</body>
</html>
<script runat=server language=javascript>
function function1()
{
...
}
</script>
9.#include 包括其它文件
<!--#include virtual|file="filename"-->
virtual指虚拟的文件地址。
file 代表绝对的文件地址。
如:
<!--#include virtual="/booksamp/test.asp"-->
<!--#include file="/test/test.asp"-->
而且可以层层嵌套。另外#include 不能在<%--%>之内
10.ASP取得表格输入数据的方法
:GET POST
一.get:用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&...",
再将其送到服务器。
如: actiowww.abc.com, 字段Name输入数据为jack,字段age的数据为15,则用get方法为
http://www.abc.com?Name=jack&Age=15
二.post:用户端用http信息数据传送到服务器
ASP中:
get:使用“输入数据= Request.QueryString("字段名")",将附加于URL的数据取出。
post:使用“输入数据=Request.Forml"(字段名")",读取HTTP信息数据字段。
* Request.QueryString范例
如:〈A hery="aspform.asp?Name=jack&Age=15">
按此〈/A〉〈p〉
Name:<%=request.QueryString("Name")%)
Age:<%=request.QeueryString("Age")%)
* get 范例
·aspturm.asp:
<form action="asp1b.asp" method="get">
姓名: <input type=text name="input1" value="Your name">
<p>
特征: <select name="input2">
<option>cool!
<option>handsome
<option>warmhearted
</select>
<input type=submit value="ok">
</form>
asp1b.asp的内容
<html><body>
<% =request.querystring("input1") %> hi, your character is
<%= request.querystring("input2") %>
</body></html>
11.request.From
语法: request.From(name)[(index)|.count]
name:字段名
index:当同一字段输入多个值时,指针值index指定要读取同一字段的那一个值,范围由1到
request.From(name).count
count:由request.From(name).count可知name字段输入几个值,若无此name字段,count为0
如下例:
<%
forI=1 to request.fron("input1").count
response.write request.From("input1")(I)&"<br>"
next
%>
若input1有两个值则都显示出
*若未采用index指定读取哪个.可用
〈%
for each item request.From("input"))
repomse.write item &"<br>"
next
%>
也可用" for each x in tewuest.From"重复取得所有字段的输入值。
<% for each x in request.Form %>
request.From (<%=x%)=<%=request.Form
(x)%> <br>
<% next %>
12.
获取客户端TCP/IP端口的方法:
如: tcp/ip port is <%=request("server_port")%>
使用server_port可以得到接收HTTP request的连接port信息
13.
通过HTTP_ACCEPT_LANGUAGE的HTTP表头信息,可以得到用户端的使用语言
环境.
以下例子判断用户端的语言环境,给出不同的页面.
<% language=request.servervariables("HTTP_ACCEPT_LANGUAGE")
if language="en" then %>
<!--#include file="english.asp">
<% else %>
<!--#include file="china.asp">
<% end if%>
14.主页保留的期限
如果用户端浏览器在一个主页保留的期限内,再度浏览此主页,则原在用
户端硬盘上的主页内容将被显示.
response.expires[=number]
其中NUMBER为记录数据盒(PAGE BOX)的保留期限,单位是分钟.
或:
response.expiresabsolute[=[date][time]]
如:设定一个主页保留期到某个日子.
15.连接到指定的URL地址
如:你希望确认用户已经看过INDEX.HTM,则可以检查是否已经看过,如
尚未确认,则自动连接到首页
<%
if not session("BEEN_to_home_page") then
response.redirect "index.asp"
end if
%>
16.判断是回到本页还是第一次进入
<%
if user_has_been_here_before then
response.write "<h3 align=center> Welcome Back
again"
else
response.write "Welcome!"
end if
%>
17.显示数据库中的图片与超级连接
<%
set conn=server.creatobject("ADODB.connection")
conn.open "myaddress"
set rs=conn.execute("select name,tel,url,image from
myaddress")
%>
<p>
<tabel>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td>
<b>
<%=rs(i).name %>
</b>
</td>
<% next %>
</tr>
<% do while not rs.eof %>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td valign =top>
<%
if rs(i).name="image" then
response.write "<img src="""&rs(i)&""" >"
else
if rs(i).name="url" then
response.write "<a href="""&rs(i)&""">"&rs(i)&"</a>"
else
response.write rs(i)
end if
end if
%>
</td>
<%next%>
</tr>
<% rs.movenext
loop
rs.close
conn.close
%>
</html>
18. 用ASP取得浏览器信息
<%
set a=server.creatobject("MSWC.BROWSERTYPE")
msg="您使用的浏览器是:"+a.browser+"version"+a.version
%>
<%=msg%>
19. asp访问cookies的方式(使用response和request)
如下:
写入cookies:
response.cookies("待写入的coookies名称")
="待写入数据“
读取cookies:
读取数据=request.cookies("待读的cookies名称")
* 写入时注意
@ 写入cookies的response.cookies程序段必须放在<html>标记
之前。而且不可以有任何的其他html代码
@ COOKIES中必须使用expires设定有效期, COOKIES才能真正的
写入客户端硬盘中。如:
response.cookies("待写入的名称“).expires=#july 1,1998#
或response.cookies("名称").expires=DATE+365
<%=now%> 即可
2.ASP取得表格(from)数据输入的方法,是使用一个内置的对象(object)—Requect,
它以get,post而异。
3.若要自己用VB或其它语言编写,.dll文件供ASP使用需将DLL文件注册方可:DOS下
输入 regsbr32 *.dll
4.显示五个重复的句子,字体越来越大
<% for i=1 to 5 %>
<font size=<% =i %> color=#00ffff>
快速ASP
</font>
<br>
<% next %>
5.传送字符串到用户端
response.write string
如:<% response.write "Welcome" %>
6.链接到指定的URL地址
response.redirect url
如:
<% response.redirect "homepage.asp"
%>
*但是如果此.ASP的文件内容已经传送到用户断,则再用redirect时会发生错误。
7.其他语言与ASP的结合:
如:早上显示早安,下午显示你好
<%
if time>+#12:00:00 AM# and time<#12:00:00 PM #
then
greeting="早安!"
else
greeting="你好!"
end if
%>
<%=greeting %>
8.<script>标记在ASP中的应用
例:
<html>
<body>
<% call function1 %>
</body>
</html>
<script runat=server language=javascript>
function function1()
{
...
}
</script>
9.#include 包括其它文件
<!--#include virtual|file="filename"-->
virtual指虚拟的文件地址。
file 代表绝对的文件地址。
如:
<!--#include virtual="/booksamp/test.asp"-->
<!--#include file="/test/test.asp"-->
而且可以层层嵌套。另外#include 不能在<%--%>之内
10.ASP取得表格输入数据的方法
:GET POST
一.get:用户端将数据加到URL后,格式为”?字段1=输入数据1&字段2=输入数据2&...",
再将其送到服务器。
如: actiowww.abc.com, 字段Name输入数据为jack,字段age的数据为15,则用get方法为
http://www.abc.com?Name=jack&Age=15
二.post:用户端用http信息数据传送到服务器
ASP中:
get:使用“输入数据= Request.QueryString("字段名")",将附加于URL的数据取出。
post:使用“输入数据=Request.Forml"(字段名")",读取HTTP信息数据字段。
* Request.QueryString范例
如:〈A hery="aspform.asp?Name=jack&Age=15">
按此〈/A〉〈p〉
Name:<%=request.QueryString("Name")%)
Age:<%=request.QeueryString("Age")%)
* get 范例
·aspturm.asp:
<form action="asp1b.asp" method="get">
姓名: <input type=text name="input1" value="Your name">
<p>
特征: <select name="input2">
<option>cool!
<option>handsome
<option>warmhearted
</select>
<input type=submit value="ok">
</form>
asp1b.asp的内容
<html><body>
<% =request.querystring("input1") %> hi, your character is
<%= request.querystring("input2") %>
</body></html>
11.request.From
语法: request.From(name)[(index)|.count]
name:字段名
index:当同一字段输入多个值时,指针值index指定要读取同一字段的那一个值,范围由1到
request.From(name).count
count:由request.From(name).count可知name字段输入几个值,若无此name字段,count为0
如下例:
<%
forI=1 to request.fron("input1").count
response.write request.From("input1")(I)&"<br>"
next
%>
若input1有两个值则都显示出
*若未采用index指定读取哪个.可用
〈%
for each item request.From("input"))
repomse.write item &"<br>"
next
%>
也可用" for each x in tewuest.From"重复取得所有字段的输入值。
<% for each x in request.Form %>
request.From (<%=x%)=<%=request.Form
(x)%> <br>
<% next %>
12.
获取客户端TCP/IP端口的方法:
如: tcp/ip port is <%=request("server_port")%>
使用server_port可以得到接收HTTP request的连接port信息
13.
通过HTTP_ACCEPT_LANGUAGE的HTTP表头信息,可以得到用户端的使用语言
环境.
以下例子判断用户端的语言环境,给出不同的页面.
<% language=request.servervariables("HTTP_ACCEPT_LANGUAGE")
if language="en" then %>
<!--#include file="english.asp">
<% else %>
<!--#include file="china.asp">
<% end if%>
14.主页保留的期限
如果用户端浏览器在一个主页保留的期限内,再度浏览此主页,则原在用
户端硬盘上的主页内容将被显示.
response.expires[=number]
其中NUMBER为记录数据盒(PAGE BOX)的保留期限,单位是分钟.
或:
response.expiresabsolute[=[date][time]]
如:设定一个主页保留期到某个日子.
15.连接到指定的URL地址
如:你希望确认用户已经看过INDEX.HTM,则可以检查是否已经看过,如
尚未确认,则自动连接到首页
<%
if not session("BEEN_to_home_page") then
response.redirect "index.asp"
end if
%>
16.判断是回到本页还是第一次进入
<%
if user_has_been_here_before then
response.write "<h3 align=center> Welcome Back
again"
else
response.write "Welcome!"
end if
%>
17.显示数据库中的图片与超级连接
<%
set conn=server.creatobject("ADODB.connection")
conn.open "myaddress"
set rs=conn.execute("select name,tel,url,image from
myaddress")
%>
<p>
<tabel>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td>
<b>
<%=rs(i).name %>
</b>
</td>
<% next %>
</tr>
<% do while not rs.eof %>
<tr>
<% for i=0 to rs.fields.count-1 %>
<td valign =top>
<%
if rs(i).name="image" then
response.write "<img src="""&rs(i)&""" >"
else
if rs(i).name="url" then
response.write "<a href="""&rs(i)&""">"&rs(i)&"</a>"
else
response.write rs(i)
end if
end if
%>
</td>
<%next%>
</tr>
<% rs.movenext
loop
rs.close
conn.close
%>
</html>
18. 用ASP取得浏览器信息
<%
set a=server.creatobject("MSWC.BROWSERTYPE")
msg="您使用的浏览器是:"+a.browser+"version"+a.version
%>
<%=msg%>
19. asp访问cookies的方式(使用response和request)
如下:
写入cookies:
response.cookies("待写入的coookies名称")
="待写入数据“
读取cookies:
读取数据=request.cookies("待读的cookies名称")
* 写入时注意
@ 写入cookies的response.cookies程序段必须放在<html>标记
之前。而且不可以有任何的其他html代码
@ COOKIES中必须使用expires设定有效期, COOKIES才能真正的
写入客户端硬盘中。如:
response.cookies("待写入的名称“).expires=#july 1,1998#
或response.cookies("名称").expires=DATE+365










