[转载]《穷爸爸,富爸爸》读后感

看完<<穷爸爸,富爸爸>>,感觉又活了一次。感受颇深,看待一些问题跟常人很不同,这就是为什么发财的原因,其实资本主义没什么不好,就是一个资本的社会。对待金钱,我们应该有正确的态度。因为我们害怕谈钱,所以我们是钱盲(至少我是)。好多东西都说到我心里去了,也说到点子上行去了,好多弱点,看问题的思路大家都很相似,这就是为什么那么多人还是穷人,或者是中产阶级,原因就是我们没有财商,缺乏思想,挣钱的思想,对待金钱的态度,对待教育地态度,对待时间,自己的态度都存在很多问题。也谈到了不只是中国的教育有问题,外国的教育也是一样。关注是勇气之本。

下面是从书上摘抄的,留作材料,供以后警醒:

下面说的是现象:书上说一般人挣钱的现象

>>"他们不停地为公司老板工作,通过缴税为政府工作,通过付住房贷款和信用卡贷款为银行工作"

>>一个孩子说:"为什么我要花时间去学那些我真实生活中一辈子也用不到的东西呢"

记得大学参加数学建模竞赛,当时我们的数学老师就说:"数学,没啥用处,用处就是将来你的老板的孩子数学不好,叫你去辅导",现在工作了,确实没用到大学数学什么东西。

对待职业:职业和事业是有区别的,事业是自己的,职业是别人的

>>"现在我知道我该如何去选择一个我想去从事的职业而不是因为某个职业安全或有利可图便去选择它。我想我需要不断地玩这个游戏,并把它介绍给我的朋友们,如果我们学会了这游戏所教的,我们将自由去做和学我们真正内心想要的东西,而不是去学另外一些东西仅仅因为它是一些特定的工作所需要的技巧。如果我学会这些,我就不必再去担心工作安定和社会保障,而这也是我大部分同学所关心的"。

这就是为什么对孩子说:"去得到好的教育‘是不够的。"他说,"假定学校体系的教育能使你的孩子准备好了应付真实的生活,这种假定是愚蠢的。我并不是说美国现有的教育体系是完全不好的,但至少它是远远不够的,在今天的世界,每个孩子都需要得到更多的教育,不同的教育,他们需要知道真实生活中的游戏规则,各种不同的规则。富人有他的那套规则,而富人的规则对于绝大多数穷人和中产阶级来说还是个秘密。其他占人口95%的人则有他们的规则,而这些人是从学校学到这些规则的。这就是今天为什么简单地对孩子说:"努力学习,找好工作'是危险的。"今天,你所能给孩子的最危险的建议就是:去学校,好好念书,然后找个安全的工作。这是旧的建议而且是坏的建议,如果你能看见在亚洲、欧洲、南美洲发生的事,你就

会像我一样担忧。"正如学校里教的某些技能非常重要一样,经济技能和交流技能也十分重要经济头脑是在解决我们经济问题的过程中锻炼出来的。

作者对downsizing 的看法:

>>我来问你,当一家公司宣布缩编时会如何?"

    "会解雇人,家庭会受伤害,失业会增加。"

    "对。但对公司会发生什么?尤其是对一个公开上市的股份公司?"我想了想说:

"当宣布缩编时上市公司股价通常会上升,市场喜欢这样的消息,因为当公司减人时成本

就下降了,这意味着公司通过自动化提高了平均劳动生产率。"

    "对,"他说:"而当股价上升时,像我这样的人,即股东,就更富了。这就是我说

的一套不同的规则。雇员损失了,但所有者和投资者却获利了。"罗伯特不仅描述了雇员

和雇主的区别,也说明了掌握自己的命运和把它让给别人掌握的区别。

想法和行动最重要

>>我注意到穷爸爸之所以穷不在于他挣到的钱的多少(尽管这也很重要),而在于他的想法和行动

改变:

>>改变自己比改变他人更容

人跟人的差别:

    >>富爸爸继续说:"如果你是那种没有毅力的人,你将放弃生活对你的每一次推动。这样的话,你的一生会过得稳稳当当,不做错事、随时准备着当永远不会发生的事情发生时解救自己,然后,在无聊中老死。你会有许多像你一样的朋友,希望生活稳定、处世无误。

    但事实是,你对生活屈服了,不敢承担风险。你的确想赢,但失去的恐惧超过了成功的兴奋,事实是从内心深处,你就始终认为你不可能*,所以你选择了稳定。"

激情正是愤怒和热爱的结合物说到钱,大多数人希望稳稳妥妥地挣到,他们很少有挣钱的激情,于是,只好有没钱的恐惧。

对钱的看法:

>>也不明白为何老被钱所困扰,于是以为多点钱就能解决问题,却几乎没有人意识到缺乏财务知识才是他们真正的问题所在。"

这就是只知道为钱工作而不知如何让钱为你工作的代价。你有热情学习吗?"

思考:

>>你们正在学习一生中最重要的一课,你们应该学会思考

"起床,上班,付账,再起床,再上班,再付账......他们的生活就是在无穷尽地为这两种感觉而奔忙:恐惧和贪婪。给他们更多的钱,他们就会以更高的开支重复这种循环。

感觉:

>>除了你自己谁也不能真正明白你的感觉。

欲望,恐惧:

>>"他们会去挣了点小钱,可快乐、欲望、贪婪会接着控制他们,他们会再作出反应,仍然是不加思考。" "他们的感情代替了他们的思想。"

"正是如此,他们不去分辨真相,不去思考,只是对感受作出反应。他们感到恐惧,于是去工作,希望钱能消除恐惧,但钱不可能消除恐惧。于是,恐惧追逐着他们,他们只好又去工作,希望钱能消除恐惧,但还是无法摆脱恐惧。恐惧使他们落入工作的陷阶,挣钱——工作——挣钱,希望有一天能消除恐惧。但每天他们起床时,就会发现恐惧又同他们一起醒来了。恐惧使成千上万的人彻夜难眠,忧心忡忡。所以他们又起床去工作了,希望薪水能杀死那该死的恐惧。钱主宰着他们的生活,他们拒绝去分辨真相,钱控制了他们的情感和灵魂。

"富人也是如此。事实上,许多人致富并非出于欲望而是由于恐惧,他们认为钱能消除那种没有钱、贫困的恐惧,所以他们积累了很多的钱,可是他们发现恐惧感更加强烈了,他们更加害怕失去钱。

很有道理的话:

>>人需要有感情,它使我们真实,感情这个词表达着行动的动力。

>>真实地看待你的感情,以你喜欢的方式运用你的头脑和感情,而不是与自己作对。

>>人生实际上是在无知和幻觉之间的一场斗争

>>但不幸的是,对许多人来说,学校是终止而不是开端。"

>>学会让感情跟随你的思想,而不要让思想跟着你的感情

 

 

 

自由之路:

>> "那是一条布满荆棘的路吗?"

   "是的,所谓的荆棘就是我们的恐惧和贪婪。走进我们的恐惧,直面我们的贪婪、

弱点和缺陷。这条路的出路就是用心去确定你的思想。

思考与反应

>>"确定我们该怎样思考而不只是对情感作出反应"

工作和教育:

>>工作只是面对长期问题的一种暂时的解决办法

我想太多的人仍然过多地关注钱,而不是他们最大的财富——所受的教育。

钱:

>>从长期来看,重要的不是你挣了多少钱,而是要看你能留下多少钱,以及留住了多久。

工作:

>>作为一个自己有房子的雇员,你努力工作的结果如下:

  1.你为别人工作。如大多数人为工资而工作一样,你的努力使雇主或股东致富,你的工作和成功将使雇主成功并且可以提早退休。

    2.你为政府工作。政府在你还未看见工资时就已拿走了一部分,努力工作只是使政府的税收增加。大多数人都在为政府工作。

    3.你为银行工作。缴税后,你的下一笔最大支出该是偿还抵押贷款和信用卡贷款了。

工作,薪水:

>>"我需要加薪"、"我要是能得到升职该多好"、

"我要回学校去再学习以便得到收人更高的工作"、"我要去加班"、"也许我能干两份工作"、"两周内我将辞职因为我找到了一份工资更高的工作"等等

资产与负债:

>>为了财务安全,人们需要关注自己的事业。你的事业围绕着的是你的资产,而不是你的收入。正如以前说过的,第一号规则是要知道资产负债之间的区别,并且去买人资产。

富人关心的焦点是他们的资产而其他人关心的则是他们的收入。

那么,你或你的孩子们应该获得什么样的资产呢?依我看,真正的资产可以分为下列几类:1.不需我到场就可以正常运作的业务。我拥有它们,但由别人经营和管理。如果我必须在那儿工作,那它就不是我的事业而是我的职业了;2.股票;3.债券;4.共同基金;5.产生收入的房地产;6.票据(借据);7.专利权如音乐、手稿、专利;8.任何其他有价值、可产生收入或可能增值并且有很好的流通市场的东西。

公司的魔力:

>>另一方面,富人则看到了机会,他们不按同一套规则来运作。正如我所说的,他们非常了解公司的魔力,而公司在商品经济时代正变得日益普遍。富人创办了公司来限定其资产的风险,就像用一条船去航行,富人把钱投人到公司这条"船"去航行,公司则雇一批职员(船员)把船驶向"新世界"去寻宝。一旦船沉了,船员会丧生,但富人损失的仅限于他投资的金钱。

政府预算:

>>政府成了一个巨大的钱库,但问题是还有预算管理,这不是一个自动循环重复的系统。换句话说,政府的政策是,如果你是一个政府官员,就应避免拥有过多的钱;如果你没有用完预算资金,在下次预算中你就有被削减掉这些钱的风险,你不会因为有节余而被认为有效率并得到奖励;为避免被削减预算资金,政府雇员会大量花钱和雇人,虽然这很可能是在浪费。而商人,则因为有节余而被认为有效率

对待风险:

>>风险总是无处不在,要学会驾驭风险,而不是一味回避风险。

看清道路:

>>相反,我劝告年轻人在寻找工作时要看看能从中学到什么,而不是只看能挣到多少。在选择某种特定的职业之前或者在陷入为生计而忙碌工作的"老鼠赛跑"之前,要仔细看看脚下的道路,弄清楚自己到底需要获得什么技能。

资本主义与教育:

>>一方面我是资本主义的坚定信奉者,喜欢以钱生钱的游戏;另一方面我又是一个怀有社会责任感的教师,深深关注贫富之间日益加深的鸿沟。我个人认为,尚不完善的教育体系应对这一鸿沟的加深负有责任。

不好的心理:

>>1.恐惧心理;2.愤世嫉俗;3.懒惰;4.不良习惯;5.自负。

我的话:

1.如果你没有准备成功,那么你就是准备着失败

2.不是失败,而是暂时没有成功

3.失败是成功之母

4. 对别人怜悯,就是对自己残忍

5. 钱是挣来的,不是攒下来的

 

原来你什么都不想要:

>>每当我听到人们执迷于自己的"我不想要"而不悟,不去注意他们所想要的东西时,我就知道他们脑子里的"噪音"

 

懒惰的人:我对这句话印象最深,因为我就是,总是忙碌的懒惰

>>忙碌的人常常是最懒惰的人

我经常遇到那些过分忙于工作而不顾及到自己身体健康的人,原因是一样的:他们很忙,他们把忙碌工作当作逃避自己不想面对的一些问题的途径。把问题掩盖起来使他们逃避了一些重要的事情。这是最普遍的一种懒惰形式,一种通过忙碌来表现的懒惰。

治疗懒惰的药物:

>>那么,什么能够治疗这种情性呢?答案就是"贪婪"一点。要勇于去追求并得到自己所想要的生活。

对于我们许多人来说,我们是在把贪婪或欲望看作坏事的环境中成长起来的。"贪婪的人都是坏人,"妈妈常常这样说。然而,我们的心里都在渴望着拥有那些美好、新奇或令人高兴的东西。因此,为了控制这种欲望,父母便常常想办法教导我们用负罪感来抑制这种欲望。

你的懒惰思想会为自己的谎言辩护

关爱自己,这不是自私,而是动力:

>>我喜欢富爸爸说的话。"所以,如果我也学会先支付我自己,我就会在财务上更强

壮,嗅,应该是在精神上和财务上都更加强壮。"

    富爸爸点了点头。

    "而如果我像我爸爸那样最后支付自己,或根本就不支付,我就会变得更加虚弱,

那么我一生都会围着老板、经理、税务官员。收账员及地主们转,仅仅因为我没有良好

的财务习惯。"

傲慢:

>>傲慢是无知的另一面。

每次当我自高自大时,我真的相信我所不知道的东西并不重要。

知识与金钱

>>"我的知识给我带来金钱,我所不知道的东西使我失去金钱。

   

金钱的思想:

>>因为我们的文化把对金钱的需要视为万恶之源,并把这种观念灌输给了我们,这种观念促使我们学习某种技能,并为金钱而工作,却没能教给我们如何让金钱来为我们而工作。

学习与做人:

>>你学习什么,就会成为什么样的人"。

十个步骤开发才能

>>我建议你采取以下十个步骤来开发上帝赐予你的才能,这种才能只有你才能控制:

1.我需要一个超现实的理由:精神的力量。

2.每天作出自己的选择:选择的力量,这是人们希望生活在一个自由国度的主要原

因。

3.慎重地选择朋友:关系的力量。

4.掌握一种模式,然后再学习一种新的模式:快速学习的力量。

5.首先支付自己:自律的力量。

开创你自己的事业所必备的最重要的三种管理技能是:

1.现金流量管理;2.人事管理;3.个人时间管理。

当你资金短缺时,去承受外在压力而不要动用你的储蓄或投资,利用这种压力来

激发你的财务天赋,想出新办法挣到更多的钱,然后再支付账单。这样做,不但能提高

你赚钱的能力,还能提高你的财商。

6.给你的经纪人以优厚报酬:好建议的力量。

人事管理是重要的管理技能之一。许多人只会管理没有自己聪明的人或者没有自己能力强的人,比如工作中的下属。

7.做一个"印第安给予者":无私的力量。

8.资产用来购买奢侈品:集中的力量。

最容易的道路往往会越走越艰难,而艰难的道路往往会越走越轻松。

9.对英雄的崇拜:神话的力量。

10.先予后取:给予的力量。

买卖:

>>我首先寻找想买人的人,然后才去找想卖出的人。

posted @ 2009-03-15 18:21 barney 阅读(127) | 评论 (0)编辑
     摘要:   阅读全文
posted @ 2008-05-06 17:38 barney 阅读(215) | 评论 (0)编辑

知识前提  这个是 3D 的玩法  简单先了解下!

什么叫组3  什么叫组6 什么叫豹子

豹子就是三个位置数字相同的号码,总共十注:000、111、222、、、、直到999。

直选号码确定数字位置、   组选号码不需确定号码位置。
组选三就是三个数字中有两个相同,比如说你买组选三055(对应055、505、550三注直选号),昨晚开奖550,那你就中奖320元;
组选六就是三个数字各不相同,比如说你前天买了组选六035(对应035、053、305、350、503、530六注直选号),前晚开奖035,那你就中奖160元。
你在投注单上投注组选号码的话不论你按什么顺序填写打印出的彩票均按数字由小到大排列。组选直选虽然每注都是2元,但因为组选号码对应直选号多、中奖概率高,因此组选单注奖金也少,这是经过计算出来的。

 

-----------------我的问题--------------------

 

 

组三 至少选 2个 数字 可以 选10 个   组六 至少 三个数字 最多10个

先说组三  组三 选择 2个 数  比如 选 0 1 可以有  N×(N-1) 个  产生的 组选 的结果 2× 1 也就是 2个

选 三个 的话 比如 0 1  2    有   001  002   011  022  112  122   就是  3×2      6个 组选的结果

 

现在 我选择  0 1 2 3 的话   按照  应该产生 12 个 组选的结果 

 

依次 往下推  求这个通用的算法  求出 选了 几个数 对应的 组选 结果 列表

 

组选六 也是 这样的 至少选3个  最多 全选 10个   求出 选了 几个数 对应的 组选 结果 列表

 

比如说组六 选了  0 1 2  3     对应的组选结果列表是       012   013  123    023

 

现在求大家帮个忙 写个这样的算法 求出 组3 和组六的 个数 和列表

 

请牛人 帮忙  谢谢大家了 ! 放在首页 求助!  博客园团队 如果觉得 如果不合适的话请撤下来! 谢谢了!再次感谢! 多年来首次发首页!请大家谅解!

 

 

 

posted @ 2009-07-05 19:37 barney 阅读(403) | 评论 (4)编辑

http://blog.csdn.net/flyaim/archive/2009/04/10/4062794.aspx  

 

在调试.net程序中,可以有asp程序,可能要进行联合调试.以下是调试的方法.
1.在IIS中站点下,应用程序配置,配置,打开启用asp服务器端脚本调试.
2.先在浏览器中访问过需要调试的文件
3.打开VS2005,调试->附加到进程 选择用户名为  IWAM_计算机名 的 dllhost.exe(也有可能是w3wp.exe)
4.在vs2005中设定程序断点.
5.进入打开的web页进行刷新,就可以开始调试了.
(或者然后在IIS里面运行页面,注意不是在VS里面运行)

详细设置如下:

先打开“Internet 信息服务(IIS)管理器”,找到要开启服务端脚本调试的网站,进入属性页,进入“主目录”选项卡,点击“应用程序设置”中的“配置”,进入应用程序配置,进入“调试”选项卡,选中“启用ASP服务端脚本调试(E)”,确定即可。

配置完IIS之后,就需要用VS2005来调试程序了。当然安装VS2005是必须的步骤,这里就不多说了。

使用VS2005调试ASP程序可以在两种情况下使用,一是程序出错时调试,一是手工加载调试。

如果想在ASP程序出错时才用VS2005进行调试,那么可以在装完VS2005之后直接测试ASP程序,如果程序出现错误,会自动提示是否使用VS2005进行调试。

一个测试ASP程序,a=1,b=0,因此会有除0的错误,提示是否使用VS2005调试,选择是,使用新实例,如果已经打开了VS2005,则也可以直接用已经存在的实例来调试

错误信息,可以选择中断或者继续

中断,光标停在出错行,下部用红框标出的是变量监视窗口,可以查看当前上下文中的变量

另一种情况是在还没出错的情况下进行调试,这时需要先在浏览器中访问过需要调试的文件,因为这样ASP代码才会载入内存,然后打开VS2005,选择菜单中“调试->附加到进程”,然后选择dllhost.exe,如果在进程列表中没有找到dllhost.exe,可能是因为你还没有运行过ASP程序,我在测试的时候发现有两个dllhost.exe,可以从用户名发现一个是用户的,一个是系统的,选择的时候选用户的就OK了,还有一点要说明的是,在IIS6.0里面到附加到的进程相信不是dllhost.exe,应该是w3wp.exe,这个有待实践去检验~(补充:然后选择w3wp.exe,如果在进程列表中没有找到w3wp.exe,可能是因为你还没有运行过ASP程序。)

补充:在WINDOWS XP 下调试设置区别:vs2005->调试->附件到进程 选择的是dllhost.exe(用户名为IWAM_计算机名).

在VS中设置好断点,这个我就不多说了(选中一行,F9就行),

然后在IIS里面运行页面,注意不是在VS里面运行,平时的F5,CTRL+F5就不能用啦~

现在就可以使用VS2005来调试ASP程序了,相信这会在ASP程序开发过程中给大家带来很大的方便。

这时可以在左边看到内存中存在的脚本文件,可以选择要调试的文件打开,然后进行下断点之类的操作,从下图可以看出,我下了个断点在a=1,运行时程序停在了a=1这一行。

如果没有看到脚本资源管理,可以用菜单“调试->窗口->脚本资源管理器”来打开,或者使用快捷键Ctrl+Alt+N。

至此,我们就可以使用VS2005来调试ASP程序了,相信这会在ASP程序开发过程中给大家带来很大的方便。


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/flyaim/archive/2009/04/10/4062794.aspx

 

 

http://www.xujiwei.com/blog/?id=747

 

很早之前就在PJ的blog上看到可以用VS2005调试ASP程序,但是没有写出具体的步骤,后来一次偶尔也让我找到了方法,但是一直没把它写出来,今天就把用VS2005调试ASP程序的方法写出来,希望对写ASP程序的朋友们有用。

首先需要说明的是,我所用的环境是Win2003+IIS6,PJ用的环境是Vista+IIS7+WPF,不过我想WPF应该是无关紧要的,主要是服务器支持服务端脚本调试。在此我以IIS6为例说明怎样开启服务端脚本调试。

先打开“Internet 信息服务(IIS)管理器”,找到要开启服务端脚本调试的网站,进入属性页,进入“主目录”选项卡,点击“应用程序设置”中的“配置”,进入应用程序配置,进入“调试”选项卡,选中“启用ASP服务端脚本调试(E)”,确定即可。

图片附件

配置完IIS之后,就需要用VS2005来调试程序了。当然安装VS2005是必须的步骤,这里就不多说了。

使用VS2005调试ASP程序可以在两种情况下使用,一是程序出错时调试,一是手工加载调试。

如果想在ASP程序出错时才用VS2005进行调试,那么可以在装完VS2005之后直接测试ASP程序,如果程序出现错误,会自动提示是否使用VS2005进行调试。

图片附件

一个测试ASP程序,a=1,b=0,因此会有除0的错误,提示是否使用VS2005调试,选择是,使用新实例,如果已经打开了VS2005,则也可以直接用已经存在的实例来调试

图片附件

错误信息,可以选择中断或者继续

图片附件

中断,光标停在出错行,下部用红框标出的是变量监视窗口,可以查看当前上下文中的变量

另一种情况是在还没出错的情况下进行调试,这时需要先在浏览器中访问过需要调试的文件,因为这样ASP代码才会载入内存,然后打开VS2005,选择菜单中“工具->附加到进程”,然后选择w3wp.exe,如果在进程列表中没有找到w3wp.exe,可能是因为你还没有运行过ASP程序。

图片附件

这时可以在左边看到内存中存在的脚本文件,可以选择要调试的文件打开,然后进行下断点之类的操作,从下图可以看出,我下了个断点在a=1,运行时程序停在了a=1这一行。

图片附件

如果没有看到脚本资源管理,可以用菜单“调试->窗口->脚本资源管理器”来打开,或者使用快捷键Ctrl+Alt+N。

至此,我们就可以使用VS2005来调试ASP程序了,相信这会在ASP程序开发过程中给大家带来很大的方便。

 

 

 

posted @ 2009-07-05 16:29 barney 阅读(3) | 评论 (0)编辑
posted @ 2009-06-10 16:10 barney 阅读(6) | 评论 (0)编辑
     摘要: 如何创建一个标准的Windows服务 在很多时候,我们需要一个定时器,当间隔某段时间或者在某一个时刻的时候,触发某个业务的处理,这个时候,我们就可能需要引入Windows服务来做这个事情,如某些数据的同步操作、某些工作任务的创建或者侦听某些端口的工作等等。做过Windows Forms开发的人,对开发Windows服务可能会熟悉一些,其实它本身应该算是一个Windows Forms程序。基本上整个... 阅读全文
posted @ 2009-06-10 16:03 barney 阅读(4) | 评论 (0)编辑

 

最近的一些想法与大家分享

大家好!感谢大家对我博客的关注,过去一年多时间里,我的博客上只有技术,所以大家来到这里更像是去了图书馆,再加上没有开通评论功能,于是又少了与我的互动,只是看到每个月博客一定会有所更新。

这篇博文的目的是想说说博客的一点变动和我最近的一些想法。大家可能已经看到了,文章分类已经分为了两大块,一部分是技术类文章,一部分是非技术类文章。我是做技术出身,所以我了解技术人员的想法。相对于与人打交道,技术人员更愿意与计算机打交道,不是因为与人打交道太简单提不起兴趣,而是因为与人打交道太复杂。能够在技术领域做出点成绩的,一定是对计算机充满热情的人,不然很难想像整天面对“枯燥”的代码这样苦行僧的生活可以持续下去。但是技术做得久了,难免产生一些职业病,最简单的一个例子――不擅长与人交往。有些技术人员热衷于钻研技术,技术书籍看了一堆又一堆,非技术书籍一本也不碰,导致的直接结果就是知识面狭隘,除了技术以外什么都不知道,与人沟通起来感觉没有话题可聊,但是你所知道的技术知识又没法和技术以外的人员去聊,于是就频频冷场。而且技术人员还有一个怪癖,看不起其他职业,认为做技术才是“脑力劳动”,其他统统是“体力劳动”的近亲,所以又保持一种莫名其妙的孤傲。就拿我自己来说,我认真去对待的三次恋情全部以失败告终,实际上我一不丑(相片你也看到了)二不穷(年薪多少我就不说了),按道理找个女朋友不应该很困难,但因为我的笨拙和不会说话,女孩子对我基本上都是由热转冷,最后不欢而散。

以前我的职位很低,充其量也就是一个开发组组长,带领两个兵一起做做项目,只要把项目做好就OK了,而且这两个兵也跟我是平级,上面还有项目经理、技术部主管等等。半年前换了份工作,在家小公司担任了一个较高的职位,也有了自己的下属,才深切体会到仅有技术是远远不够的。还要会管理,这样才能让纷繁复杂的事务井井有条;还要有领导力,这样别人才会愿意听从你的安排;跟我的领导几次交谈之后,我更是认识到了关系的重要性:如果是在csdn接个外单,开发一个管理软件,花3个月做完,可以赚个5000-8000块算不错了。同样是我、同样类型的项目、花费同样的人月,只不过项目是国内某知名企业委托给我领导,领导再委托给我,他们每个月支付的软件使用费是6000块,注意!是每个月支付这么多!多么巨大的差别啊!?原因只在于我们领导与该企业的领导有关系,所以会交给他做。所以卡耐基才会说“一个人的成功,百分之十五是靠专业技能,百分之八十五是靠关系”。所以,亲爱的朋友们,会做人远比会做技术重要。

现在再来谈点儿别的东西,大家看到我的分类里多了一个“经济金融与企业管理”,企业管理容易懂,因为我在做一些管理方面的工作,所以会有心得写在那里。那么经济与金融又是怎么回事呢?做技术和管理还要学习经济与金融么?我来解释一下,世界上来钱最快、最轻松的方式莫过于赌博了(如果你非要说抢银行我也拿你没着),而买股票买基金可以说是一种投资,也可以说是一种赌博,学习经济与金融就是在学习这个赌博的技巧,但却不仅仅如此。靠技术生活是很累的,可以用来积累初期(毕业后5年以内)的资金,但是不适合终身从事下去(国外是可以的,在我们国家是很困难的,最简单的例子,我招聘人员的时候80年出生以前的不要,原因是我认为30岁还需要满网找工作不去找猎头的人是不可靠的),就算是未雨绸缪也要考虑将来的出路,先不管将来打算做什么,赚钱的思路是一定要有的,经过前期的积累,会有一定的积蓄,如果你存在银行里,虽然每年有利息,但是一样有通货膨胀率,所以实际的购买力指不定是上升了还是下降了。为了不使自己辛苦赚来的血汗钱贬值,这样就需要拿这笔钱出来投资,让它去生更多的钱,那么投资去哪里呢?不一定是买股票或者基金的,有很多种方式,如果你想不出,那么就打开电视看看新闻或者买份报纸看看,如果你没有学习过经济金融,你看了也就过去了,没什么心得体会也不会有太多想法,但是如果你拥有这方面的知识,你就会做出自己的判断,国家一个政策的变更,或者某一事件的发生往往蕴含着巨大的商机,只要你抓住了,就可以快速致富。但问题是如何才能具有这样的慧眼和头脑?!请你学习一下经济和金融吧!

最后说一下“精美文萃”这个分类,从我高中到大学,看了很多精美的短篇文章,有一些是网上的,有一些是书上的,有一些甚至是我一个字一个字打出来的,把它们发布出来,有空的时候看一看,心灵的鸡汤。下面这篇文章先送给各位:

《你真的可以很自在》

米兰·昆德拉有一本书叫“生活在他方”,我对这五个字有很好的联想:

我们的生活总是在远方,都在想:如果明天我有钱,我就可以……。

但是如果你现在赚少钱不快乐,就算你有再多的钱,我保证你也不会快乐;

如果你一个人的时候不会自得其乐,即使嫁了人,娶了老婆,别人跟你一起一样不快乐;

如果现在不懂得享生活,未来也不会享受生活。

有人问什么叫做自由,所谓的自由就是:你想要拒绝一个人的约会,已经不需要任何理由,你有权力过自己要过的生活,有权力去自己要去的地方。

其实生活很简单。

男人跟女人都很喜欢在自己的人生设一个deadline,比如说:

我25岁一定要结婚...

26岁一定生孩子...

30岁时一定要一男一女...

31岁的时候一定要有房子...

所以很多决定就很草率。

如果刚开始你找的那个人就不对,往后再怎么努力都不对;有时候,我们常常会觉得婚结了,所有问题就没了,那如果结了婚还有问题,就赶快把小孩生一生,其实你的问题在这个阶段没解决,在下个阶段只会变大;你对未来不用期待太多,期待太多,老实说挫折感会很深,不如看看你现在做什么事情,会让你觉得很自在,吸收到很多的东西,那个时候你才会觉得人生真的很充实。

另外,一个人如果太努力在活给别人看,就会痛苦得不得了,今天如果你相信自己做得还不错,不在乎别人怎么看你的时候,你真的可以很自在。

 

这篇文章发布在 TraceFact.Net ,转过来了

posted

 

posted @ 2009-06-05 15:49 barney 阅读(12) | 评论 (0)编辑
     摘要: XPath详解,总结 经常在工作中会使用到XPath的相关知识,但每次总会在一些关键的地方不记得或不太清楚,所以免不了每次总要查一些零碎的知识,感觉即很烦又浪费时间,所以对XPath归纳及总结一下。 在这篇文章中你将能学习到: XPath简介 XPath 路径表达式详解 XPath在DOM,XSLT及XQuery中的应用 XPath简介 XPath是W3C的一个标准。它最主要的目的是为了在XML1... 阅读全文
posted @ 2009-04-17 15:14 barney 阅读(18) | 评论 (0)编辑
     摘要: 网页中模拟Excel 一.表格中用到的快捷键:← → ↑ ↓ :左,右,上,下Home :当前行的第一列End:当前行的最后一列Shift+Home:表格的第一列Shift+End:表格的最后一列如图:二.程序如下:<%@ page language="java" pageEncoding="UTF-8"%><html> &l... 阅读全文
posted @ 2009-04-13 21:59 barney 阅读(17) | 评论 (0)编辑
网上有很多分页存储过程,但是基本上都是提供一个单纯的存储过程,没有具体的怎样去实现。最近做一个项目用户的数数据相当大(一百万以上的数据),如果用.NET自带的分页基本上是跑不动了,不是提示超时就是死在那里。于是就想到用存储过程分页来实现,去网上逛了一大圈终于找了几个比较好的存储过程。接下去就开始做测试等等,最后就干脆把它做成用户控件算了,以后用直接拖到页面上,传几个属性进去就可以实现分页,免得每次都重复同样的code。 

经本人测试,对于Sqlserver的效率相当快,而对于Oracle的效率(按某个字段倒序排)不是很理想,如果不排序效率很理想,这点没有深入研究(Oracle为什么按倒序排速度很慢,在PL/SQL里也一样)。


先发布SqlServer版的分页自定义存储过程,下载代码:
http://files.cnblogs.com/cherish58/sql%20server分页存储过程.rar



存储过程(该存储过程为网上下载):
复制  保存
CREATE PROCEDURE  GetRecordFromPage 
  @tblName  varchar(255),    -- 表名 
  @RetColumns   varchar(1000) = '*',   -- 需要返回的列,默认为全部 
  @Orderfld   varchar(255),    -- 排序字段名 
  @PageSize   int  =  10,    -- 页尺寸 
  @PageIndex  int  =  1,     -- 页码 
  @IsCount  bit  =  0,     -- 返回记录总数, 非 0 值则返回 
  @OrderType  varchar(50)  =  'asc',   -- 设置排序类型, 非 asc 值则降序 
  @strWhere   varchar(1000)  =  ''   -- 查询条件 (注意: 不要加 where) 
  AS
  
  declare @strSQL   varchar(1000)  -- 主语句 
  declare @strTmp   varchar(300)   -- 临时变量 
  declare @strOrder   varchar(400)   -- 排序类型 
  
  if  @IsCount  != 0  --执行总数统计
  
  begin
  if @strWhere != '' 
  set @strSQL = 'select count(*) as Total from [' + @tblName + ']  where ' + @strWhere 
  else
  set @strSQL = 'select count(*) as Total from [' + @tblName + ']'
  end
  
  else    --执行查询操作
  
  begin
  
  if  @OrderType  != 'asc' 
    begin 
    set @strTmp = '<(select min' 
    set @strOrder = ' order by [' + @Orderfld +'] desc' 
    end 
  else 
    begin 
    set  @strTmp = '>(select max' 
    set  @strOrder = ' order by [' + @Orderfld +'] asc' 
    end 
    
  set  @strSQL = 'select top ' + str(@PageSize) + ' ' + @RetColumns + '  from [' 
  + @tblName + '] where [' + @Orderfld + ']' + @strTmp + '([' 
  + @Orderfld + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [' 
  + @Orderfld + '] from [' + @tblName + ']' + @strOrder + ') as tblTmp)' 
  + @strOrder 
    
  if  @strWhere  != '' 
  set @strSQL = 'select top ' + str(@PageSize) + ' ' + @RetColumns + ' from [' 
    + @tblName + '] where [' + @Orderfld + ']' + @strTmp + '([' 
    + @Orderfld + ']) from (select top ' + str((@PageIndex-1)*@PageSize) + ' [' 
    + @Orderfld + '] from [' + @tblName + '] where (' + @strWhere + ') ' 
    + @strOrder + ') as tblTmp) and (' + @strWhere + ') ' + @strOrder 
    
  if  @PageIndex = 1 
    begin 
    set @strTmp = '' 
    if @strWhere != '' 
    set @strTmp = ' where (' + @strWhere + ')' 
  
    set @strSQL = 'select top ' + str(@PageSize) + ' ' + @RetColumns + ' from ['  
    + @tblName + ']' + @strTmp + ' ' + @strOrder 
    end
 end
  
exec  (@strSQL)

下面为用户控件前台html代码:
复制  保存
<%@ Control Language="c#" AutoEventWireup="false" Codebehind="GetPagerForSql.ascx.cs" Inherits="doHope.GetPagerForSql" TargetSchema=%>
<asp:label id="Label2" runat="server" Font-Size="9pt"></asp:label><FONT face="宋体"> </FONT></FONT><asp:label id="lbl_RecordCnt" runat="server" Font-Size="9pt"></asp:label><FONT face="宋体"> </FONT><asp:label id="Label3" runat="server" Font-Size="9pt"></asp:label><FONT face="宋体"> </FONT><asp:label id="Label4" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:label><FONT face="宋体"> </FONT><asp:linkbutton id="lkbFirst" runat="server" Font-Size="9pt" Enabled="False" ForeColor="Black" CommandArgument="First">首页</asp:linkbutton><FONT face="宋体"> </FONT><asp:linkbutton id="lkbPre" runat="server" Font-Size="9pt" Enabled="False" ForeColor="Black" CommandArgument="Pre">上一页</asp:linkbutton><FONT face="宋体"> </FONT><asp:linkbutton id="lkbNext" runat="server" Font-Size="9pt" Enabled="False" ForeColor="Black" CommandArgument="Next">下一页</asp:linkbutton><FONT face="宋体"> </FONT><asp:linkbutton id="lkbLast" runat="server" Font-Size="9pt" Enabled="False" ForeColor="Black" CommandArgument="Last">末页</asp:linkbutton><FONT face="宋体"> </FONT><asp:label id="Label5" runat="server" Font-Size="9pt" ForeColor="Black">|</asp:label><FONT face="宋体"> </FONT><asp:label id="Label6" runat="server" Font-Size="9pt"></asp:label><asp:textbox id="txt_CurrentPage" runat="server" Enabled="False" Width="35px" Height="18px" AutoPostBack="True"></asp:textbox><FONT face="宋体"></FONT>
<asp:label id="Label8" runat="server" Font-Size="9pt" ForeColor="Black">/</asp:label><FONT face="宋体"> </FONT><asp:label id="lbl_PageCnt" runat="server" Font-Size="9pt"></asp:label><FONT face="宋体"> </FONT><asp:label id="Label9" runat="server" Font-Size="9pt"></asp:label>

下面为后台代码:
复制  保存
namespace doHope
{
    using System;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;

    /// <summary>
    /// 配合存储过程分页自定义控件(Sql Server)
    /// By Cherish58
    /// </summary>
    public class GetPagerForSql : System.Web.UI.UserControl
    {
        protected System.Web.UI.WebControls.Label Label1;
        protected System.Web.UI.WebControls.Label Label9;
        protected System.Web.UI.WebControls.Label lbl_PageCnt;
        protected System.Web.UI.WebControls.Label Label6;
        protected System.Web.UI.WebControls.LinkButton lkbLast;
        protected System.Web.UI.WebControls.LinkButton lkbNext;
        protected System.Web.UI.WebControls.LinkButton lkbPre;
        protected System.Web.UI.WebControls.LinkButton lkbFirst;
        protected System.Web.UI.WebControls.Label Label3;
        protected System.Web.UI.WebControls.Label lbl_RecordCnt;
        protected System.Web.UI.WebControls.Label Label2;
        protected System.Web.UI.WebControls.Label Label4;
        protected System.Web.UI.WebControls.Label Label5;
        protected System.Web.UI.WebControls.Label Label7;
        protected System.Web.UI.WebControls.Label Label8;
        protected System.Web.UI.WebControls.TextBox txt_CurrentPage;
        #region 全局变量

        /// <summary>
        /// 获得数据库连接字符
        /// </summary>
        protected string strconn = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].ToString();

        /// <summary>
        /// 初始登陆时是否绑定数据(是为true,否为false),默认为false
        /// </summary>
        public bool InitBindData = false;

        #endregion
        #region 属性

        /// <summary>
        /// 表名,必须赋初值
        /// </summary>
        public string TableName
        {
            get { return ViewState["TableName"].ToString(); }
            set { ViewState["TableName"] = value; }
        }
        /// <summary>
        /// 返回的列名,默认为全部
        /// </summary>
        public string RetColumns
        {
            get { return ViewState["RetColumns"].ToString(); }
            set { ViewState["RetColumns"] = value; }
        }
        /// <summary>
        /// 查询条件字符串,默认为空
        /// </summary>
        public string SqlWhere
        {
            get { return ViewState["SqlWhere"].ToString(); }
            set { ViewState["SqlWhere"] = value; }
        }
        /// <summary>
        /// 排序字段,必须赋初值
        /// </summary>
        public string OrderField
        {
            get { return ViewState["OrderField"].ToString(); }
            set { ViewState["OrderField"] = value; }
        }
        /// <summary>
        /// 排序类型(升序为asc,降序为desc),默认为升序
        /// </summary>
        public string OrderType
        {
            get { return ViewState["OrderType"].ToString(); }
            set { ViewState["OrderType"] = value; }
        }
        /// <summary>
        /// 每页显示记录数,默认为10条
        /// </summary>
        public int PageSize
        {
            get { return int.Parse(ViewState["PageSize"].ToString()); }
            set { ViewState["PageSize"] = value; }
        }
        /// <summary>
        /// 初始显示为第几页,默认为第1页
        /// </summary>
        public int CurrentPage
        {
            get { return int.Parse(ViewState["CurrentPage"].ToString()); }
            set { ViewState["CurrentPage"] = value; }
        }
        /// <summary>
        /// 数据列表控件名称,必须赋初值
        /// </summary>
        public string DataControlName
        {
            get { return ViewState["DataControlName"].ToString(); }
            set { ViewState["DataControlName"] = value; }
        }

        #endregion
        #region Page_Load

        private void Page_Load(object sender, System.EventArgs e)
        {
            if (!IsPostBack)
            {
                if (this.InitBindData)
                {
                    //默认显示为第几页
                    ViewState["CurrentPage"] = ViewState["CurrentPage"] == null || ViewState["CurrentPage"].ToString() == "" ? "1" : ViewState["CurrentPage"].ToString();
                    //每页显示记录总数
                    ViewState["PageSize"] = ViewState["PageSize"] == null || ViewState["PageSize"].ToString() == "" ? 10 : int.Parse(ViewState["PageSize"].ToString());

                    this.BindGridData();
                }
            }
        }

        #endregion
        #region Web 窗体设计器生成的代码
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }

        /// <summary>
        ///        设计器支持所需的方法 - 不要使用代码编辑器
        ///        修改此方法的内容。
        /// </summary>
        private void InitializeComponent()
        {
            this.lkbFirst.Command += new System.Web.UI.WebControls.CommandEventHandler(this.ChangePage);
            this.lkbPre.Command += new System.Web.UI.WebControls.CommandEventHandler(this.ChangePage);
            this.lkbNext.Command += new System.Web.UI.WebControls.CommandEventHandler(this.ChangePage);
            this.lkbLast.Command += new System.Web.UI.WebControls.CommandEventHandler(this.ChangePage);
            this.txt_CurrentPage.TextChanged += new System.EventHandler(this.txt_CurrentPage_TextChanged);
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
        #region 分页 ChangePage

        private void ChangePage(object sender, System.Web.UI.WebControls.CommandEventArgs e)
        {
            int PageCount = this.GetPageCount();
            int CurrentPage = int.Parse(ViewState["CurrentPage"].ToString());

            string Change = e.CommandArgument.ToString();
            if (Change == "Pre") //上一页   
            {
                if (CurrentPage <= 1)
                {
                    ViewState["CurrentPage"] = 1;
                }
                else
                {
                    ViewState["CurrentPage"] = CurrentPage - 1;
                }
            }
            else if (Change == "Next") //下一页  
            {
                if (CurrentPage >= PageCount)
                {
                    ViewState["CurrentPage"] = PageCount;
                }
                else
                {
                    ViewState["CurrentPage"] = CurrentPage + 1;
                }
            }
            else if (Change == "First") //首页
            {
                ViewState["CurrentPage"] = 1;
            }
            else //末页
            {
                ViewState["CurrentPage"] = PageCount;
            }

            //显示当前页
            this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();

            this.ProData();
        }

        #endregion
        #region 绑定数据

        /// <summary>
        /// 设置分页相关的参数
        /// </summary>
        private void BindGridData()
        {
            //记录总数
            this.lbl_RecordCnt.Text = this.GetRecordCount().ToString();
            //总页数
            this.lbl_PageCnt.Text = this.GetPageCount().ToString();
            if (this.lbl_PageCnt.Text != "0")
            {
                //当前页
                this.txt_CurrentPage.Text = ViewState["CurrentPage"].ToString();
            }
            else
                this.txt_CurrentPage.Text = "0";

            //避免翻页后再查询出现列表没记录的情况
            if (int.Parse(this.lbl_RecordCnt.Text) <= int.Parse(ViewState["PageSize"].ToString()))
            {
                ViewState["CurrentPage"] = 1;
                this.txt_CurrentPage.Text = "1";
            }

            //绑定数据
            this.ProData();
        }

        #endregion
        #region 处理数据集

        /// <summary>
        /// 处理数据集
        /// </summary>
        /// <returns></returns>
        private void ProData()
        {
            SqlConnection conn = new SqlConnection(strconn);
            SqlCommand cmd = new SqlCommand("GetRecordFromPage", conn);
            conn.Open();

            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@tblName", "" + ViewState["TableName"].ToString() + "");
            string retcolumns = ViewState["RetColumns"] == null || ViewState["RetColumns"].ToString() == "" ? "*" : ViewState["RetColumns"].ToString();
            cmd.Parameters.Add("@RetColumns", retcolumns);
            string sqlwhere = ViewState["SqlWhere"] == null || ViewState["SqlWhere"].ToString() == "" ? "" : ViewState["SqlWhere"].ToString();
            cmd.Parameters.Add("@strWhere", sqlwhere);
            cmd.Parameters.Add("@Orderfld", "" + ViewState["OrderField"].ToString() + "");
            cmd.Parameters.Add("@PageIndex", int.Parse(ViewState["CurrentPage"].ToString()));
            cmd.Parameters.Add("@PageSize", "" + int.Parse(ViewState["PageSize"].ToString()) + "");
            string ordertype = ViewState["OrderType"] == null || ViewState["OrderType"].ToString() == "" ? "asc" : ViewState["OrderType"].ToString();
            cmd.Parameters.Add("@OrderType", ordertype);

            SqlDataAdapter da = new SqlDataAdapter();
            da.SelectCommand = cmd;

            DataSet ds = new DataSet();
            da.Fill(ds);

            //找到父页面控件并绑定(这里只对DataGrid控件绑定)
            DataGrid dg = (DataGrid) this.Page.FindControl("" + ViewState["DataControlName"].ToString() + "");
            dg.DataSource = ds;
            dg.DataBind();

            da.Dispose();
            cmd.Dispose();
            conn.Close();

            //控制分页按扭状态
            this.StatsLinkButton();
        }

        #endregion
        #region 控制分页按扭状态

        private void StatsLinkButton()
        {
            int CurrentPage = int.Parse(ViewState["CurrentPage"].ToString());
            int PageCount = this.GetPageCount();
            if (PageCount > 0)
                this.txt_CurrentPage.Enabled = true;
            else
                this.txt_CurrentPage.Enabled = false;

            //若当前页为第一页
            if (CurrentPage <= 1)
            {
                this.lkbFirst.Enabled = false;
                this.lkbPre.Enabled = false;
            }
            else
            {
                this.lkbFirst.Enabled = true;
                this.lkbPre.Enabled = true;
            }
            //若当前页为最后页 
            if (CurrentPage >= PageCount)
            {
                this.lkbLast.Enabled = false;
                this.lkbNext.Enabled = false;
            }
            else
            {
                this.lkbLast.Enabled = true;
                this.lkbNext.Enabled = true;
            }
        }

        #endregion
        #region 得到记录总数、总页数

        //记录总数
        private int GetRecordCount()
        {
            int RecordCount = 0;

            string sql = "select count(*) from " + ViewState["TableName"].ToString() + " where 1=1";
            if (ViewState["SqlWhere"] != null && ViewState["SqlWhere"].ToString() != "")
                sql = sql + " and " + ViewState["SqlWhere"].ToString() + "";

            SqlConnection conn = new SqlConnection(strconn);
            SqlCommand cmd = new SqlCommand(sql, conn);
            conn.Open();
            RecordCount = int.Parse(cmd.ExecuteScalar().ToString());
            cmd.Dispose();
            conn.Close();

            return RecordCount;
        }

        //总页数
        private int GetPageCount()
        {
            int RecordCount = 0;
            int YeShu = 0;
            int psize = int.Parse(ViewState["PageSize"].ToString());

            string sql = "select count(*) from " + ViewState["TableName"].ToString() + " where 1=1";
            if (ViewState["SqlWhere"] != null && ViewState["SqlWhere"].ToString() != "")
                sql = sql + " and " + ViewState["SqlWhere"].ToString() + "";

            SqlConnection conn = new SqlConnection(strconn);
            SqlCommand cmd = new SqlCommand(sql, conn);
            conn.Open();
            RecordCount = int.Parse(cmd.ExecuteScalar().ToString());
            cmd.Dispose();
            conn.Close();

            YeShu = RecordCount % psize;

            if (YeShu == 0)
            {
                return RecordCount / psize;
            }
            else
            {
                return RecordCount / psize + 1;
            }
        }

        #endregion
        #region 跳转

        private void txt_CurrentPage_TextChanged(object sender, System.EventArgs e)
        {
            try
            {
                int num = Convert.ToInt32(this.txt_CurrentPage.Text);
                if (num > this.GetPageCount())
                {
                    Page.RegisterStartupScript("", "<script>alert('输入的页数已超出总页数,请重新输入!')</script>");
                    return;
                }

                ViewState["CurrentPage"] = num;

                this.ProData();
            }
            catch (Exception ee)
            {
                Page.RegisterStartupScript("", "<script>alert('请输入正确的页数!')</script>");
                return;
            }
        }

        #endregion
        #region 传值后再绑定,用于有条件查询(前台调用)

        /// <summary>
        /// 传值后再绑定,用于有条件查询
        /// </summary>
        public void GetDataByCond()
        {
            //默认显示为第1页
            ViewState["CurrentPage"] = ViewState["CurrentPage"] == null || ViewState["CurrentPage"].ToString() == "" ? "1" : ViewState["CurrentPage"].ToString();
            //每页显示记录总数
            ViewState["PageSize"] = ViewState["PageSize"] == null || ViewState["PageSize"].ToString() == "" ? 10 : int.Parse(ViewState["PageSize"].ToString());

            this.BindGridData();
        }

        #endregion
    }
}
posted @ 2009-04-05 06:51 barney 阅读(60) | 评论 (0)编辑
     摘要: 1.document.write(""); 输出语句2.JS中的注释为//3.传统的HTML文档顺序是:document->html->(head,body)4.一个浏览器窗口中的DOM顺序是:window->(navigator,screen,history,location,document)5.得到表单中元素的名称和值:document.getElementById("表单... 阅读全文
posted @ 2009-03-17 09:43 barney 阅读(133) | 评论 (0)编辑