欢迎使用 WordPress。这是您的第一篇日志。您可以编辑它或是删除它,然后开始写您自己的博客。
-
最新日志
最新评论
- 中国博客网 发表于《Hello world!》
- 访客 发表于《[计算机]数据结构习题》
- 访客 发表于《[转]老婆不让听的六首歌》
- miaolan 发表于《唐僧在如来面前吐真言(经典的哲学)》
- 访客 发表于《delphi中format函数的使用》
存档页
分类
功能
这个帖子是2008的第一贴,也是本blog的最后一贴,从今天起本blog停止更新,有链接到这里的友情链接可以删了,以后有留言我也不再回复。谢谢,亲朋好友几年来的捧场,谢谢。
.Net General
Visual Studio
Visual C#.Net
.NET社区
.NET博客
Ajax
工具下载
开源程序
.NET开源项目
SharpDevelop
强大的插件系统,通过Addin构建成一个功能齐全的.net开发IDE。核心是AddInTree。跟随这个项目开发许多有用的组件,比如功能文本编辑器(ICSharpCode.TextEditor),SharpZipLib等。
链接:http://www.icsharpcode.net/
DotNetNuke
这个就是著名DNN,使用VB.NET进行开发。通过其基本架构可进行堆积木式快速建站。而且支持子网站系统。其由asp.net Portal start kit进化而来。
链接:http://www.dnnchina.net/ ,http://www.dotnetnuke.com
Community Server
这个也是一个很著名的ASP.NET项目,记得好像最早系统原形为asp.net Forums,后来加入了.Text Blog 和nGallery成为一个完整的通用系统。对应的中文版本为宝玉修改的CCS。
链接:http://communityserver.org/
Rainbow
另外一个类似于DNN的系统,使用C#进行开发。
链接:http://www.rainbowportal.net/
RssBandit
一个客户端的RSS查看器,使用C# 进行开发,最大的特点是数据存储采用xml文件。
链接:http://www.rssbandit.org/
FreeTextbox
Web上的一个Html超文本编辑器,早些版本是开源的,现在还是免费使用,不过源代码需要购买。
链接:http://www.freetextbox.com
World Wind
使用.NET开发的一个Windows窗体系统,以地球外观看得角度提供全球定位功能,类似于Google Earth。
链接:http://worldwind.arc.nasa.gov
log4net
对应Java中的log4j。一个强大的日志管理模块。
链接:http://logging.apache.org/log4net/
Monodevelop
非Windows 系统下的.net 平台开发工具。
链接:http://www.monodevelop.com
Paint.NET
使用.net开发的画图软件,功能不错。
链接:http://www.getpaint.net/index.html
Nunit
对应Java中的Junit,非常著名的单元测试工具。
链接:http://www.nunit.org/
FCKeditor
Web上的又一个Html超文本编辑器。
链接:http://www.fckeditor.net/
Nlog
一个日志管理库,类似于Log4Net。
链接:http://www.nlog-project.org/
ManagedSpy
.net 平台下的Spy ++,支持通过.net 2.0开的Windows Forms应用程序。
链接:http://msdn.microsoft.com/msdnmag/issues/06/04/ManagedSpy/
Guidance Explore
类似于一个.net平台编程问题简答的FAQ。不过提供的都是英文。
链接:http://www.codeplex.com/Wiki/View.aspx?ProjectName=guidanceExplorer
Terrarium
一个.net开发的多人游戏。玩这个游戏可以提高编程能力。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
TaskVision
任务管理系统,一个经典的Smart Client智能客户端程序。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
IssueVision
事务管理系统,Smart Client智能客户端程序。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
FotoVision
又一个值得学习的.net开发的Windows应用程序。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
Infragistics Tracker Application
由Infragistics开发的Smart Client智能客户端程序。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
Windows Forms RSS Portal
一个.net 开发的聚合器。
链接:http://www.windowsforms.net/Default.aspx?tabindex=4&tabid=49
Enterprise Library
微软的企业库,对原早些时候开发的一些Block 模块进行整合提供企业统一的接口,新版本使用了.net 2.0的的许多功能。
链接:http://msdn.microsoft.com/practices/
PetShop
基于N-tier设计的电子商务网站,没什么好说的了。
链接:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnbda/html/bdasamppet4.asp
XmlNotepad
一个用.net 开发的xml文件编辑器。
链接:http://www.microsoft.com/china/msdn/library/data/xml/xmlnotepad.mspx
DockManager Control
一个很不错的实现类似于VS 2005的界面某些功能的组件。
链接:http://www.codeproject.com/vb/net/DockPanelSkin.asp
Starter Kits for Visual Web Developer
该套件为学习研究应用asp.net2.0的开发人员提供许多宝贵资源,很不错。
链接:http://www.asp.net/downloads/starterkits/default.aspx?tabid=62
ADO.NET、NBear和NHibernate简单读写性能比较。


本测试使用SqlServer2000的Northwind数据库的Categories、Customers和Products三个表,测试比较ADO.NET、NBear和NHibernate的读写性能。公平起见,测试代码并没有使用太多特别框架的独有功能或缓存,在实际测试前分别都进行了预读(保证元数据等都在第一次运行时已载入)。
读测试每次循环分别读取Categories、Customers和Products三个表的全部数据,三个组件分别返回DataSet,强类型实体数组和IList,虽然返回的数据类型不同,但是,实际上都包括了对返回数据的填充操作,因此,应该是相对公平的。结果显示NBear的性能近似于ADO.NET;NHibernate的独性能要差5倍左右。
写测试每次循环分别新建、更新并删除Categories、Customers和Products三个表中的各一条记录。ADO.NET由于是直接执行SQL的,速度最快是肯定的。NBear相比ADO.NET慢约3倍,NHibernate则大约慢2倍。
鉴于一般的系统读操作的频率远高于写操作,NBear的平均性能应该要比NHibernate好处不少。
测试并不完全,仅作参考。
| Repeat Times | ADO.NET (ms) | NBear (ms) | NHibernate (ms) |
|---|---|---|---|
| 1 | 218 | 234 | 1140 |
| 2 | 484 | 515 | 3812 |
| 5 | 1109 | 1218 | 6078 |
| 10 | 2218 | 2484 | 12390 |
| Repeat Times | ADO.NET (ms) | NBear (ms) | NHibernate (ms) |
|---|---|---|---|
| 20 | 125 | 312 | 234 |
| 40 | 203 | 656 | 437 |
| 100 | 546 | 1609 | 1046 |
| 200 | 984 | 3046 | 2015 |
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1655108
1 创建脚本块
1: <script language=”JavaScript”>
2: JavaScript code goes here
3: </script>
2 隐藏脚本代码
1: <script language=”JavaScript”>
2: <!--
3: document.write(“Hello”);
4: // -->
5: </script>
在不支持JavaScript的浏览器中将不执行相关代码
3 浏览器不支持的时候显示
1: <noscript>
2: Hello to the non-JavaScript browser.
3: </noscript>
4 链接外部脚本文件
1: <script language=”JavaScript” src="/”filename.js"”></script>
5 注释脚本
1: // This is a comment
2: document.write(“Hello”); // This is a comment
3: /*
4: All of this
5: is a comment
6: */
6 输出到浏览器
1: document.write(“<strong>Hello</strong>”);
7 定义变量
1: var myVariable = “some value”;
8 字符串相加
1: var myString = “String1” + “String2”;
9 字符串搜索
1: <script language=”JavaScript”>
2: <!--
3: var myVariable = “Hello there”;
4: var therePlace = myVariable.search(“there”);
5: document.write(therePlace);
6: // -->
7: </script>
10 字符串替换
1: thisVar.replace(“Monday”,”Friday”);
11 格式化字串
1: <script language=”JavaScript”>
2: <!--
3: var myVariable = “Hello there”;
4: document.write(myVariable.big() + “<br>”);
5: document.write(myVariable.blink() + “<br>”);
6: document.write(myVariable.bold() + “<br>”);
7: document.write(myVariable.fixed() + “<br>”);
8: document.write(myVariable.fontcolor(“red”) + “<br>”);
9: document.write(myVariable.fontsize(“18pt”) + “<br>”);
10: document.write(myVariable.italics() + “<br>”);
11: document.write(myVariable.small() + “<br>”);
12: document.write(myVariable.strike() + “<br>”);
13: document.write(myVariable.sub() + “<br>”);
14: document.write(myVariable.sup() + “<br>”);
15: document.write(myVariable.toLowerCase() + “<br>”);
16: document.write(myVariable.toUpperCase() + “<br>”);
17:
18: var firstString = “My String”;
19: var finalString = firstString.bold().toLowerCase().fontcolor(“red”);
20: // -->
21: </script>
12 创建数组
1: <script language=”JavaScript”>
2: <!--
3: var myArray = new Array(5);
4: myArray[0] = “First Entry”;
5: myArray[1] = “Second Entry”;
6: myArray[2] = “Third Entry”;
7: myArray[3] = “Fourth Entry”;
8: myArray[4] = “Fifth Entry”;
9: var anotherArray = new Array(“First Entry”,”Second Entry”,”Third Entry”,”Fourth Entry”,”Fifth Entry”);
10: // -->
11: </script>
13 数组排序
1: <script language=”JavaScript”>
2: <!--
3: var myArray = new Array(5);
4: myArray[0] = “z”;
5: myArray[1] = “c”;
6: myArray[2] = “d”;
7: myArray[3] = “a”;
8: myArray[4] = “q”;
9: document.write(myArray.sort());
10: // -->
11: </script>
14 分割字符串
1: <script language=”JavaScript”>
2: <!--
3: var myVariable = “a,b,c,d”;
4: var stringArray = myVariable.split(“,”);
5: document.write(stringArray[0]);
6: document.write(stringArray[1]);
7: document.write(stringArray[2]);
8: document.write(stringArray[3]);
9: // -->
10: </script>
15 弹出警告信息
1: <script language=”JavaScript”>
2: <!--
3: window.alert(“Hello”);
4: // -->
5: </script>
16 弹出确认框
1: <script language=”JavaScript”>
2: <!--
3: var result = window.confirm(“Click OK to continue”);
4: // -->
5: </script>
17 定义函数
1: <script language=”JavaScript”>
2: <!--
3: function multiple(number1,number2) {
4: var result = number1 * number2;
5: return result;
6: }
7: // -->
8: </script>
18 调用JS函数
1: <a href=”#” onClick=”functionName()”>Link text</a>
2: <a href="/”javascript:functionName"()”>Link text</a>
19 在页面加载完成后执行函数
1: <body onLoad=”functionName();”>
2: Body of the page
3: </body>
20 条件判断
1: <script>
2: <!--
3: var userChoice = window.confirm(“Choose OK or Cancel”);
4: var result = (userChoice == true) ? “OK” : “Cancel”;
5: document.write(result);
6: // -->
7: </script>
21 指定次数循环
1: <script>
2: <!--
3: var myArray = new Array(3);
4: myArray[0] = “Item 0”;
5: myArray[1] = “Item 1”;
6: myArray[2] = “Item 2”;
7: for (i = 0; i < myArray.length; i++) {
8: document.write(myArray[i] + “<br>”);
9: }
10: // -->
11: </script>
22 设定将来执行
1: <script>
2: <!--
3: function hello() {
4: window.alert(“Hello”);
5: }
6: window.setTimeout(“hello()”,5000);
7: // -->
8: </script>
23 定时执行函数
1: <script>
2: <!--
3: function hello() {
4: window.alert(“Hello”);
5: window.setTimeout(“hello()”,5000);
6: }
7: window.setTimeout(“hello()”,5000);
8: // -->
9: </script>
24 取消定时执行
1: <script>
2: <!--
3: function hello() {
4: window.alert(“Hello”);
5: }
6: var myTimeout = window.setTimeout(“hello()”,5000);
7: window.clearTimeout(myTimeout);
8: // -->
9: </script>
25 在页面卸载时候执行函数
1: <body onUnload=”functionName();”>
2: Body of the page
3: </body>
JavaScript就这么回事2:浏览器输出
26 访问document对象
1: <script language=”JavaScript”>
2: var myURL = document.URL;
3: window.alert(myURL);
4: </script>
27 动态输出HTML
1: <script language=”JavaScript”>
2: document.write(“<p>Here’s some information about this document:</p>”);
3: document.write(“<ul>”);
4: document.write(“<li>Referring Document: “ + document.referrer + “</li>”);
5: document.write(“<li>Domain: “ + document.domain + “</li>”);
6: document.write(“<li>URL: “ + document.URL + “</li>”);
7: document.write(“</ul>”);
8: </script>
28 输出换行
1: document.writeln(“<strong>a</strong>”);
2: document.writeln(“b”);
29 输出日期
1: <script language=”JavaScript”>
2: var thisDate = new Date();
3: document.write(thisDate.toString());
4: </script>
30 指定日期的时区
1: <script language=”JavaScript”>
2: var myOffset = -2;
3: var currentDate = new Date();
4: var userOffset = currentDate.getTimezoneOffset()/60;
5: var timeZoneDifference = userOffset - myOffset;
6: currentDate.setHours(currentDate.getHours() + timeZoneDifference);
7: document.write(“The time and date in Central Europe is: “ + currentDate.toLocaleString());
8: </script>
31 设置日期输出格式
1: <script language=”JavaScript”>
2: var thisDate = new Date();
3: var thisTimeString = thisDate.getHours() + “:” + thisDate.getMinutes();
4: var thisDateString = thisDate.getFullYear() + “/” + thisDate.getMonth() + “/” + thisDate.getDate();
5: document.write(thisTimeString + “ on “ + thisDateString);
6: </script>
32 读取URL参数
1: <script language=”JavaScript”>
2: var urlParts = document.URL.split(“?”);
3: var parameterParts = urlParts[1].split(“&”);
4: for (i = 0; i < parameterParts.length; i++) {
5: var pairParts = parameterParts[i].split(“=”);
6: var pairName = pairParts[0];
7: var pairValue = pairParts[1];
8: document.write(pairName + “ :“ +pairValue );
9: }
10: </script>
你还以为HTML是无状态的么?
33 打开一个新的document对象
1: <script language=”JavaScript”>
2: function newDocument() {
3: document.open();
4: document.write(“<p>This is a New Document.</p>”);
5: document.close();
6: }
7: </script>
34 页面跳转
1: <script language=”JavaScript”>
2: window.location = “http://www.liu21st.com/”;
3: </script>
35 添加网页加载进度窗口
1: <html>
2: <head>
3: <script language='javaScript'>
4: var placeHolder = window.open('holder.html','placeholder','width=200,height=200');
5: </script>
6: <title>The Main Page</title>
7: </head>
8: <body onLoad='placeHolder.close()'>
9: <p>This is the main page</p>
10: </body>
11: </html>
JavaScript就这么回事3:图像
36 读取图像属性
1: <img src="/”image1.jpg"” name=”myImage”>
2: <a href=”# ” onClick=”window.alert(document.myImage.width)”>Width</a>
3:
37 动态加载图像
1: <script language=”JavaScript”>
2: myImage = new Image;
3: myImage.src = “Tellers1.jpg”;
4: </script>
38 简单的图像替换
1: <script language=”JavaScript”>
2: rollImage = new Image;
3: rollImage.src = “rollImage1.jpg”;
4: defaultImage = new Image;
5: defaultImage.src = “image1.jpg”;
6: </script>
7: <a href="/”myUrl"” onMouseOver=”document.myImage.src = rollImage.src;”
8: onMouseOut=”document.myImage.src = defaultImage.src;”>
9: <img src="/”image1.jpg"” name=”myImage” width=100 height=100 border=0>
39 随机显示图像
1: <script language=”JavaScript”>
2: var imageList = new Array;
3: imageList[0] = “image1.jpg”;
4: imageList[1] = “image2.jpg”;
5: imageList[2] = “image3.jpg”;
6: imageList[3] = “image4.jpg”;
7: var imageChoice = Math.floor(Math.random() * imageList.length);
8: document.write(‘<img src=”’ + imageList[imageChoice] + ‘“>’);
9: </script>
40 函数实现的图像替换
1: <script language=”JavaScript”>
2: var source = 0;
3: var replacement = 1;
4: function createRollOver(originalImage,replacementImage) {
5: var imageArray = new Array;
6: imageArray[source] = new Image;
7: imageArray[source].src = originalImage;
8: imageArray[replacement] = new Image;
9: imageArray[replacement].src = replacementImage;
10: return imageArray;
11: }
12: var rollImage1 = createRollOver(“image1.jpg”,”rollImage1.jpg”);
13: </script>
14: <a href=”#” onMouseOver=”document.myImage1.src = rollImage1[replacement].src;”
15: onMouseOut=”document.myImage1.src = rollImage1[source].src;”>
16: <img src="/”image1.jpg"” width=100 name=”myImage1” border=0>
17: </a>
41 创建幻灯片
1: <script language=”JavaScript”>
2: var imageList = new Array;
3: imageList[0] = new Image;
4: imageList[0].src = “image1.jpg”;
5: imageList[1] = new Image;
6: imageList[1].src = “image2.jpg”;
7: imageList[2] = new Image;
8: imageList[2].src = “image3.jpg”;
9: imageList[3] = new Image;
10: imageList[3].src = “image4.jpg”;
11: function slideShow(imageNumber) {
12: document.slideShow.src = imageList[imageNumber].src;
13: imageNumber += 1;
14: if (imageNumber < imageList.length) {
15: window.setTimeout(“slideShow(“ + imageNumber + “)”,3000);
16: }
17: }
18: </script>
19: </head>
20: <body onLoad=”slideShow(0)”>
21: <img src="/”image1.jpg"” width=100 name=”slideShow”>
42 随机广告图片
1: <script language=”JavaScript”>
2: var imageList = new Array;
3: imageList[0] = “image1.jpg”;
4: imageList[1] = “image2.jpg”;
5: imageList[2] = “image3.jpg”;
6: imageList[3] = “image4.jpg”;
7: var urlList = new Array;
8: urlList[0] = “http://some.host/”;
9: urlList[1] = “http://another.host/”;
10: urlList[2] = “http://somewhere.else/”;
11: urlList[3] = “http://right.here/”;
12: var imageChoice = Math.floor(Math.random() * imageList.length);
13: document.write(‘<a href=”’ + urlList[imageChoice] + ‘“><img src=”’ + imageList[imageChoice] + ‘“></a>’);
14: </script>
JavaScript就这么回事4:表单
还是先继续写完JS就这么回事系列吧~
43 表单构成
1: <form method=”post” action=”target.html” name=”thisForm”>
2: <input type=”text” name=”myText”>
3: <select name=”mySelect”>
4: <option value=”1”>First Choice</option>
5: <option value=”2”>Second Choice</option>
6: </select>
7: <br>
8: <input type=”submit” value=”Submit Me”>
9: </form>
44 访问表单中的文本框内容
1: <form name=”myForm”>
2: <input type=”text” name=”myText”>
3: </form>
4: <a href='#' onClick='window.alert(document.myForm.myText.value);'>Check Text Field</a>
45 动态复制文本框内容
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText”><br>
3: Copy Text: <input type=”text” name=”copyText”>
4: </form>
5: <a href=”#” onClick=”document.myForm.copyText.value =
6: document.myForm.myText.value;”>Copy Text Field</a>
46 侦测文本框的变化
1: <form name=”myForm”>
2: Enter some Text: <input type=”text” name=”myText” onChange=”alert(this.value);”>
3: </form>
47 访问选中的Select
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: <option value=”Third Choice”>3</option>
6: </select>
7: </form>
8: <a href='#' onClick='alert(document.myForm.mySelect.value);'>Check Selection List</a>
48 动态增加Select项
1: <form name=”myForm”>
2: <select name=”mySelect”>
3: <option value=”First Choice”>1</option>
4: <option value=”Second Choice”>2</option>
5: </select>
6: </form>
7: <script language=”JavaScript”>
8: document.myForm.mySelect.length++;
9: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].text = “3”;
10: document.myForm.mySelect.options[document.myForm.mySelect.length - 1].value = “Third Choice”;
11: </script>
49 验证表单字段
1: <script language=”JavaScript”>
2: function checkField(field) {
3: if (field.value == “”) {
4: window.alert(“You must enter a value in the field”);
5: field.focus();
6: }
7: }
8: </script>
9: <form name=”myForm” action=”target.html”>
10: Text Field: <input type=”text” name=”myField”onBlur=”checkField(this)”>
11: <br><input type=”submit”>
12: </form>
50 验证Select项
1: function checkList(selection) {
2: if (selection.length == 0) {
3: window.alert(“You must make a selection from the list.”);
4: return false;
5: }
6: return true;
7: }
51 动态改变表单的action
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br>
3: Password: <input type=”password” name=”password”><br>
4: <input type=”button” value=”Login” onClick=”this.form.submit();”>
5: <input type=”button” value=”Register” onClick=”this.form.action = ‘register.html’; this.form.submit();”>
6: <input type=”button” value=”Retrieve Password” onClick=”this.form.action = ‘password.html’; this.form.submit();”>
7: </form>
52 使用图像按钮
1: <form name=”myForm” action=”login.html”>
2: Username: <input type=”text” name=”username”><br>
3: Password: <input type=”password”name=”password”><br>
4: <input type=”image” src="/”login.gif"” value=”Login”>
5: </form>
6:
53 表单数据的加密
1: <SCRIPT LANGUAGE='JavaScript'>
2: <!--
3: function encrypt(item) {
4: var newItem = '';
5: for (i=0; i < item.length; i++) {
6: newItem += item.charCodeAt(i) + '.';
7: }
8: return newItem;
9: }
10: function encryptForm(myForm) {
11: for (i=0; i < myForm.elements.length; i++) {
12: myForm.elements[i].value = encrypt(myForm.elements[i].value);
13: }
14: }
15:
16: //-->
17: </SCRIPT>
18: <form name='myForm' onSubmit='encryptForm(this); window.alert(this.myField.value);'>
19: Enter Some Text: <input type=text name=myField><input type=submit>
20: </form>
JavaScript就这么回事5:窗口和框架
54 改变浏览器状态栏文字提示
1: <script language=”JavaScript”>
2: window.status = “A new status message”;
3: </script>
55 弹出确认提示框
1: <script language=”JavaScript”>
2: var userChoice = window.confirm(“Click OK or Cancel”);
3: if (userChoice) {
4: document.write(“You chose OK”);
5: } else {
6: document.write(“You chose Cancel”);
7: }
8: </script>
56 提示输入
1: <script language=”JavaScript”>
2: var userName = window.prompt(“Please Enter Your Name”,”Enter Your Name Here”);
3: document.write(“Your Name is “ + userName);
4: </script>
57 打开一个新窗口
1: //打开一个名称为myNewWindow的浏览器新窗口
2: <script language=”JavaScript”>
3: window.open(“http://www.liu21st.com/”,”myNewWindow”);
4: </script>
58 设置新窗口的大小
1: <script language=”JavaScript”>
2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300');
3: </script>
59 设置新窗口的位置
1: <script language=”JavaScript”>
2: window.open(“http://www.liu21st.com/”,”myNewWindow”,'height=300,width=300,left=200,screenX=200,top=100,screenY=100');
3: </script>
60 是否显示工具栏和滚动栏
1: <script language=”JavaScript”>
2: window.open(“http:
61 是否可以缩放新窗口的大小
1: <script language=”JavaScript”>
2: window.open('http://www.liu21st.com/' , 'myNewWindow', 'resizable=yes' );</script>
62 加载一个新的文档到当前窗口
1: <a href='#' onClick='document.location = '125a.html';' >Open New Document</a>
63 设置页面的滚动位置
1: <script language=”JavaScript”>
2: if (document.all) { //如果是IE浏览器则使用scrollTop属性
3: document.body.scrollTop = 200;
4: } else { //如果是NetScape浏览器则使用pageYOffset属性
5: window.pageYOffset = 200;
6: }</script>
64 在IE中打开全屏窗口
1: <a href='#' onClick=”window.open('http://www.juxta.com/','newWindow','fullScreen=yes');”>Open a full-screen window</a>
65 新窗口和父窗口的操作
1: <script language=”JavaScript”>
2: //定义新窗口
3: var newWindow = window.open(“128a.html”,”newWindow”);
4: newWindow.close(); //在父窗口中关闭打开的新窗口
5: </script>
6: 在新窗口中关闭父窗口
7: window.opener.close()
66 往新窗口中写内容
1: <script language=”JavaScript”>
2: var newWindow = window.open(“”,”newWindow”);
3: newWindow.document.open();
4: newWindow.document.write(“This is a new window”);
5: newWIndow.document.close();
6: </script>
67 加载页面到框架页面
1: <frameset cols=”50%,*”>
2: <frame name=”frame1” src="/”135a.html"”>
3: <frame name=”frame2” src="/”about:blank"”>
4: </frameset>
5: 在frame1中加载frame2中的页面
6: parent.frame2.document.location = “135b.html”;
68 在框架页面之间共享脚本
如果在frame1中html文件中有个脚本
1: function doAlert() {
2: window.alert(“Frame 1 is loaded”);
3: }
那么在frame2中可以如此调用该方法
1: <body onLoad=”parent.frame1.doAlert();”>
2: This is frame 2.
3: </body>
69 数据公用
可以在框架页面定义数据项,使得该数据可以被多个框架中的页面公用
1: <script language=”JavaScript”>
2: var persistentVariable = “This is a persistent value”;
3: </script>
4: <frameset cols=”50%,*”>
5: <frame name=”frame1” src="/”138a.html"”>
6: <frame name=”frame2” src="/”138b.html"”>
7: </frameset>
这样在frame1和frame2中都可以使用变量persistentVariable
70 框架代码库
根据以上的一些思路,我们可以使用一个隐藏的框架页面来作为整个框架集的代码库
1: <frameset cols=”0,50%,*”>
2: <frame name=”codeFrame” src="/”140code.html"”>
3: <frame name=”frame1” src="/”140a.html"”>
4: <frame name=”frame2” src="/”140b.html"”>
5: </frameset>
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1699292
唐僧西天取得真经100年之后的一天,唐僧到如来家里做客。如来为了检验他这100
年来修佳节又重阳炼程度,席间谈话如下:
众所周知,你当年的成功,离不开你的三个得力徒弟,悟空,八戒,沙僧。那么你
本人最喜欢哪个徒弟呢?唐僧给的答案多少有些出乎如来的意料,那就是:八戒。
“八戒最大的优点就是可爱。”唐僧满面笑容的说道,“有他就少不了笑声。有很多人
误以为他懒惰,其实他并不懒惰。每次他打扫马厩或者收拾包裹,都是一丝不苟,挑
不出什么错儿来。但是他很小气,总是要暗地比较,自己比别人多干了多少,他吃不
得一点亏。而且他又喜欢睡懒觉,所以大家才会以为他很懒。”
“作为一个领佳节又重阳导者,必须要知人善用。手下队伍要精简,属下个人能力要强。”唐僧
如是说。“那么八戒的个人能力是你三个徒弟里面最差的,又有不负责任等对工作不利
的缺点。你为什么不换一个精明能干的人选呢?”如来佛不解的问。“的确,八戒在队
伍里面确实是个人素质最差的一个。但是,并不是由最好的人员组合起来的队伍就可
以最大限度的发挥队伍的整体功效。一个强大的完整的队伍,成员必须要有不同的特
点和分工。你仔细观察一下就会发现,通风报信的往往是八戒。而打不过就跑这个特
点也只有八戒有。我记得以前有个将军,他就是要用怕死的兵放峭。别人不解。他说
假如用勇猛的士兵放悄站岗,遇到敌人一定会战死,而胆怯的士兵则会跑回营中报信。
这就是说明人员搭配问题的很好的一个例子。”唐僧神采奕奕的说。
“而且,八戒这个人脸皮很厚,不怕指责。一件事情作不好,大家都可以把责任推到
他头上。这样就节省了内部处理问题的时间。而由于他的存在,其余的人员自然而然
就会对自己有一种信心,因为他的能力一定是比八戒强的。”
“对于我个人来讲,”唐僧点起一支烟,兴致勃勃的说,“我之所以喜欢他,是因为他
比较喜欢溜须拍马。一个领佳节又重阳导者,不可避免的就会对一个总是夸赞他的手下产生好感
甚至依赖感。你看几乎每个领佳节又重阳导者身边都会有八戒这样的人物存在。因为你不能要求
领佳节又重阳导者在一个至高无上的地位上,还要放低身份和自尊,去听取下属的批评和接受下
属的顶撞。你必须要有一个会说好话的人在身边,否则你早就被气死了。”
唐僧的话把如来逗笑了。
如来问到:你觉的悟空这个徒弟怎么样?一路上他多次救你性命!
是呀,上次我西天取经还有一个主角人物,他就是齐天大圣孙悟空。而他由于紧箍
咒问题的存在,和我的关系非常微妙,就如同台湾问题对中美关系的影响一样。“其实
我们之间最终是敌人的关系。”唐僧缓缓的说。
“每次危难时刻,他都能出来救我,很多次我都非常感动。但是只要一风平浪静,我
就会恢复对他的敌视态度。”唐僧说,“因为我是一个忌妒心很强的人。每个希望自己
建功立业的男人都有忌妒心。“
如来站起来给唐僧沏了杯茶,唐僧呷了一口继续说到:西游记不是无间道,”唐僧
说,“我必须作男一号。别人不可能和我抢戏分,比风头。因为我是整个组织的领佳节又重阳导
者,也是这次西天取经的唯一执行者,他们都是我的助手,助手的功劳怎么能大过执
行者的功劳呢?可是悟空没有重视自己的身份,总是擅自行事,关键的时候英雄当
头。我知道他的人气和知名度高过我,实际上这是不正常的现象。毕竟经是我拿回来的。”
“那么你们在个性上和感情上有什么冲突呢?”如来问。
“首先我先说我们的共同点,其一,我们都是很执着的人,其二,我们都是禁欲者。
在这两点上我们可以相互激励对方。但是,孙悟空其实是一个无知的农村土猴。他的
文化素质是很差的,而且脾气太倔强,因为没有受过良好家庭教育的关系。作为一个
被领佳节又重阳导者,过于倔强的性格一定会跟领佳节又重阳导者有矛盾。一山不容二虎,当一件事情,我
们有了分歧,那么到底该听谁的呢?当然是听领佳节又重阳导者的。因为领佳节又重阳导者是一个指挥者,
他负的是全局成败的责任。不管是他指挥失当,还是用人失当,只要最后结果是失败
的,他就要全部负责。象中国足球队的教练输球了怪队员就是一种低素质指挥者的表
现,因为队员是他选拔和训练的。坦白的讲,我是一个完美的指挥者,最后取经成功
的结果说明了一切。而如果指挥者下了命令手下不听从,那么最后就是要手下负责。
作为一个真正意义上的属下,即使领佳节又重阳导者让他跳崖他也一定要执行,只要彻底执行了
他就没有责任。而悟空就不懂这个常识,所以我说他是乡村土猴子。说实话他的处事
方法真的让人讨厌,很多次我都想让他卷铺盖回家。”
唐僧自信深沉的谈吐让如来欣慰的笑了笑。“你们矛盾爆发程度最激烈的一次是不是
白骨精事件的那次?”如来继续问道。
唐僧孩嗽了几声,“唉。那是我最丢脸的事情了。”唐僧吐了个烟圈,“那次我是直接
的输给了他。至今我都耿耿于怀。人都是有感情的,虽然是敌对情况严重了点,毕竟
我们还是同志,是战友,是上下级。相处久了一定是有感情的。那次我让他走,实在
是因为他让我太生气了。看他一次次给我下跪认错,我忍不住心软。但是我告诉自己,
这是赶走他最好的时机,如果这次他走了,他永远都是个农村土猴。而我自己会
独享取经归来的光环。所以我咬牙赶他走了。后来发现不能没有他。你看哪一个君王
不是等稳定之后才除掉自己眼中钉的。所以我想请他回来,等取经成功以后向如来揭
发他的一些丑行斗倒他也不迟。请他回来的时候我有多丢面子,好在大家都是自己
人,家丑不可怕。”
“那个紧箍咒问题你怎么看?”如来问。“这个问题是我们师徒关系中的核心问题。我
总是会在恰当的时机让他见识我的厉害。看他痛苦的样子其实我很有满足感,但是我
还装出很心痛的样子。而且一一一,正是因为有紧箍咒的存在,我认为他一定把我当
仇人看。等到了取经成功以后会找我报复,遗憾的是他没有抓住那个机会,因为他的
谋略比我差很远。反而是我向你推荐他作佛。作佛了就不能好打不平了。他的性格我
清楚,他忍不住火气的。所以他常常被你教训。”这你也清楚的。最后,唐僧说了这样
的话:“英雄从来都是被利用的。他是个英雄,可是我却是个赢家。”
二十世纪以来美国在亚洲打过三仗:对日战争,朝鲜战争,越南战争。好莱坞的电影对这三场战争的表现也很有意思:有关对日战争和越南战争的片子绵绵不绝,有关朝鲜战争的则几乎空白一片. 朝鲜战争被美国人称为“被遗忘的战争”(The Forgotten War),绝对不堪回首。然而美国好莱坞有关朝鲜战争的影片真的是几乎空白一片吗?
确实,美国的确没有打赢朝鲜战争,而且对于美国许多人来说,朝鲜战争的确是一场被遗忘的战争。然而,美国好莱坞并没有因此回避或者而忘记朝鲜战争。事实上,美国好莱坞拍摄了不少关于朝鲜战争的故事片。
其中最经典的有两部。
一.《决不撤退!》(Retreat, Hell!,1952年。)
【导演】约瑟夫.刘易斯(Joseph H. Lewis)。【主要演员】弗兰克.拉夫卓伊 (Frank Lovejoy)、理查德.卡尔森(Richard Carlson)、安妮塔.路易斯(Anita Louise)。【剧情简介】1950年11月,美军冲过三八线追击溃败北朝鲜军队的美军海军陆战队第一师和第七步兵师,在中朝边境进攻长津水库地区时,遭到中国人民志愿军优势兵力的猛烈反击,陷入中朝军队的重围之中。美军总部下令全面撤退。美军海军陆战队史密斯将军却公然违抗总部命令,下令部下反击中朝部队。海军陆战队斯提夫上尉率领一个营担任掩护任务,经过浴血激战,终于和主力部队一起冲出对方的包围圈。
【评论】影评界认为这部影片是正面描写朝鲜战争双方的少有影片之一。它一方面以正面手法再现了中国人民志愿军入朝初期排山倒海的反击规模,同时也歌颂了美军海军陆战队顽强作战的斗志。影片中一个美军下士,刚满17岁,但是在一次夜战中身负三处枪伤的情况下坚守阵地,保证了主峰的安全。该片的另外一个独特之处是大量使用战场实地拍摄的记录片片段。当炮弹在镜头里爆炸时,摄影机剧烈抖动,使观众有如临其境之感。
二《猪排山》(Pork Chop Hill,1959年)
【导演】刘义斯.迈尔斯通(Lewis Milestone)。【主要演员】主要演员:格利高利.派克 (Gregory Peck)、 里普.托恩(Rip Torn)。【剧情简介】朝鲜战争后期的1953年7月,当战争各方在进行和平停战谈判时,美军为了在谈判桌上增加筹码,命令克莱门斯中尉率领美军一个连进攻没有军事价值的255高地。他们知道板门店停战谈判可能随时会达成和平协议,所以一些士兵不太愿意做无谓牺牲。然而,克莱门斯中尉认为这是他们的爱国职责,在他的指挥下,美军在猪排山阵地上与中朝军队进行争夺战,甚至进行残酷的肉搏战。等到增援部队到达时,135人的连队打的就剩下25个人。
【评论】一般认为,本片描述的战役就是中国影片《上甘岭》所再现的上甘岭战役。影片真实撼人,纪实程度不啻于记录片。据说担任影片军事顾问的就是当年率兵进攻的的美军连长。影片还再现了中国莫道不消魂军队通过阵地广播的攻心战。本片通过一个黑人士兵的口,再次对美国参加朝鲜战争“为自由而战“提出了质疑。导演就是想通过影片中残酷的战斗场面,让观众知道为政治权利斗争而死去的生命是多么地不值得。
作为中国人,自然很关心美国好莱坞朝鲜战争片中对中国以及中国人民志愿军是如何描写的。总的来说,这些影片基本上是中立的。在对中朝军队战士的描写来说,基本是正面表现的中朝军队英勇顽强的作战风格。当然,从美国观众的角度,对中朝军队的正面描写也反衬了美军的更加顽强。但是,如果看过美国好莱坞有关二战中美国太平洋战争中对日作战的影片,可以看出当时美国的朝鲜战场影片基本没有跑出对日本描写的套子:即亚洲人作战英勇但是残酷、士兵没有个人能动性。
为了一场持续三年多的战争,从1951年到1977年这不到26年的时间内,美国好莱坞出了十三部故事片。虽然这比不上上百部二战战争片、50多部越战战争片,但是可以说,恐怕都不算少吧。与中国比较,中国自认为是打赢了抗美援朝战争的,在同一时期拍摄的有关影片也就是12部。
唯一值得深思的是美国拍摄的最后一部有关朝鲜战争题材的电影是1977年的《麦克阿瑟传》。而中国拍摄的最后一部有关朝鲜战争题材的电影是1976年的《长空雄鹰》。
时至今日三十多年过去了,无论是美国,还是中国。朝鲜战争倒似乎真的"成了一场被遗忘的战争"。