从昨天到现在一直都在玩Flickr,跟Lucy在GTalk上讨论如果不是怕被和谐的话说不定就购买了Pro帐户,也说不定哪天一冲动也还是购买了。我不太喜欢使用代理,给电脑上装太多的东西就会觉身上很重,电脑运行很慢(也许应该归结为我电脑太差的缘故)。直到昨天我才知道Flickr有推送图片到博客的功能,让我欣喜若狂,为了更好的使用这个功能,我特地启用以前停用的域名,做了个Fantastico & Delicious以推送我发现好看的有意思的图片与大家分享。
《抢银行指南》(How to Rob a Bank)
注册域名与申请虚拟主机
1 域名系统的基本概念
域名是Internet网络上的服务器或网络系统的名字,在全世界,域名具有惟一性。从技术上讲,域名只是一种在Internet中用于解决地址对应问题的方法。
1.1什么是域名
域名类似于互联网上的门牌号码,是用于识别和定位互联网上计算机的层次结构式字符标识,与该计算机的网际协议(IP)地址相对应。但相对于IP地址而言,更便于使用者理解和记忆。域名属于互联网上的基础服务,基于域名可以提供WWW,Email,,FTP等应用服务。比如:“IBM.com”、“Microsoft.com”和“sina.com.cn”等都是比较常见的域名。其中“www.ibm.com”只是该域名提供的WWW(World Wide Web)服务。
1.2 域名的层次结构
域名分为3类:顶级域名、二级域名和子域名。在我国,顶级域名又分为国际顶级域名和国内顶级域名。比如:“IBM.com”是国际顶级别域名,“sina.com.cn”是国内顶级域名。顶级域名分为几种类型,分别是如下表所示
后缀 说明 举例
.COM 商业性的机构或公司 www.Microsoft.com
.ORG 非盈利的组织,团体 www.neworiental.org
.GOV 政府部门 www.bjzf.gov
.MIL 军事部门 www.army.mil
.NET 网络服务的机构或公司 www.gettop.net
.BIZ 取意为business,商业信息 www.top.biz
.INFO 一般的信息服务使用 www.top.info
在顶级域名后面加上国家的缩写构成各个国家的顶级域名,国家缩写一般由两个字母组成,如中国为.CN,日本为.JP,英国为.UK等,一般来说大型的或有国际业务的公司或机构不使用国家代码。
顶级域名的下一级,就是二级域名。比如“BBS.IBM.COM”是“IBM.COM”的二级域名。二级域名的下一级,就是三级域名,统称二级域名以下的域名为子域名。目前根据域名的类别不同注册价格一般不同。
2 虚拟主机的基本概念
虚拟主机和主机托管是目前常用的两种网站接入的方式,虚拟主机一般提供两种操作系统:WINDOWS2000/2003和LINUX操作系统。用户可根据需要选择不同类型的虚拟主机。
2.1什么是虚拟主机
虚拟主机(Virtual Host或者 Virtual Server)是使用特殊的软硬件技术,把一台计算机主机分为若干台“虚拟”的主机,每一台虚拟主机都具有独立的域名和IP地址(或共享的IP地址),具有完整的Internet服务器功能。在同一台硬件、同一个操作系统上,运行着为多个用户打开的不同的服务器程序,互不干扰;而各个用户拥有自己的一部分系统资源(IP地址、文件存储空间、内存、CPU时间等)。虚拟主机之间完全独立,在外界看来每一台虚拟主机和一台独立的主机的表现完全一样。
虚拟主机技术的出现,是对Internet技术的重大贡献,是广大Internet用户的福音。由于多台虚拟主机共享一台真实主机的资源,每个用户承受的硬件费用、网络维护费用、通信线路的费用均大幅度降低,使Internet真正成为人人用得起的网络。
2.2提供的服务
虚拟主机除了提供网站空间以外,还提供的常用功能:网站计数器、留言版、调查反馈表、访问统计系统、数据备份、独立CGI—BIN目录、PHP支持、ASP和ASP。NET支持、JSP支持、ACCESS数据库支持、MYSQL或者SQL SERVER数据库支持和提供访问日志等。
虚拟主机根据提供的服务不同可以分成四类:普通企业版、论坛版、电商级和门户级别。
*普通企业版 通常只提供信息浏览,介绍企业的一些基本信息以及能够提供的服务。一般不包含程序代码,最多提供留言簿和反馈表等程序。一般100MB空间的价格在200~300元。
*论坛级 论坛通常在线的人数比较多,一般同时在线10~100人不等,需要频繁的数据库交换信息。一般100MB空间的价格在300~500元。
*电商级 网站提供电子商务等服务,需要同时在线人数50~150人不等,信息量比较大,一般300MB的价格在1000~2000元。
*门户级 提供信息门户服务,同时在线人数一般在200人以上,信息量非常大,一般500MB~2GB空间的价格在2000~5000元。
通常情况下,操作系统是Window 2000/2003 Server都支持ASP或者ASP.NET,Linux或者FreeBSD操作系统都支持PHP或者JSP。个人以及企业空间一般都选择Windows操作系统。
当拥有一个域名以后,就同时拥有了该域名的二级域名。比如某用户注册了”ohbug.com”,那么域名资源“bbs.ohbug.com”或者“www.ohbug.com”都将属于该用户,可以设置这些域名指向某IP地址或者某个URL地址。
3 注册域名
域名是很重要的资源,而且目前顶级域名正在飞速的减少,尤其是.com域名和.net域名。
3.1查找域名
目前可以提供注册域名的服务商很多,而且注册的价格也不一样,比如.com域名最便宜的50元,最贵的120元甚至更多。要找到这些域名提供商,可以理应Google或者Baidu搜索引擎,比如在www.google.com查找字符串“注册域名”。
通常可以查出很多的服务商,国外比较著名的有www.godaddy.com 和www.enom.com;国内比较著名的有www.net.cn(中国万网)和www.ename.cn(易名中国)等等。其中enom和万网的直接客户价格比较高,godaddy.com及ename.cn价格比较合适。建议注册域名时选择国外的域名注册服务提供商,一方面是因为管理方便;另一方面价格较低。
在注册域名之前可以对服务商进行全面的考察,比如其回答问题是否及时,交费方式是否灵活,提供的服务是否很全面。一般价格贵的域名提供商提供的服务也多,要权衡各种利弊。
3.2注册域名
在选定一家服务商以后,就要对选好的域名进行注册。如果该企业,可以注册国内域名,个人只能注册国际域名。注册域名之前首先查询该域名是否被注册,几乎所有的域名服务商都提供查询功能。
如果查到某个域名还没有被注册,就可以通过服务商注册该域名。通常情况下,用户需要填写一张注册表,然后交纳所需要的费用。注册完毕后,用户就可以要求服务商将该域名指向某个IP地址或者某个URL地址,同时也可以设置一些二级域名。
4 申请虚拟主机
不是每个企业都拥有一台一直连在网上的服务器。拥有域名以后,需要申请一快空间来存放企业或者个人的页面。
4.1选择虚拟主机的类型
相比域名来讲,各个服务商提供的虚拟主机的价格差得更大。但是价格因素将决定服务以及网站访问的速度。各个服务商提供的虚拟主机一般有两种类型:Windows系列和Linux系列。
企业或者个人可以根据自己代序要选择不同的类型,通常中小企业选择50MB~100MB空间已经完全够用了,一般选择Windows操作系统的服务器,这样维护和编写程序都比较方便。
4.2注册虚拟主机
有些用户为了使用和维护方便,以及以后续费方便,域名和虚拟主机一般注册在同一家服务商。甚至有些学者也建议悬着同一家服务商。有时候,有些服务商使用域名和虚拟主机捆绑销售的方式来促销。在这里我不建议这么做,这样虽然图了一时的方便,但是不易于更换虚拟主机提供商,特别是国内一些黑心服务提供商,它以你域名在它那里为由,强制你选择他们的空间。所以我建议域名注册与虚拟主机要分开选择,域名转移起来比较麻烦,选择注册服务提供商要细心对比。
当虚拟主机开通以后,服务商会提供给用户一个完整的访问的列表,包括用户的FTP登陆地址,登陆密码以及其他一些信息。如果有问题,还可以通过电话和电子邮件等方式向客户服务人员咨询。
4.3 上传页面
一般情况下,当一个虚拟主机开通以后,都会有一个默认页面,不同的服务商提供的默认页面不同。
用户可以将自己做好的页面,通过FTP上传到虚拟主机中。服务商不同,虚拟主机的跟目录也不同,可以根据说明进行上传。可以使用专门的FTP工具上传,比如:CuteFtp或者LeapFtp等,也可以通过浏览器直接上传,比如链接“ftp://www.ohbug.com”,在浏览器直接输入地址,然后输入用户名和密码,则出现虚拟主机跟目录文件列表。
可以将文件直接复制到目标文件夹中。一般Windows虚拟主机默认打开的文件是index.htm,index.asp,index.aspx,default.com,default.htm和default.aspx等。需要用户将网站的首页设置为这些文件中的一个。上传完毕后,就可以通过浏览器来测试是否上传成功。在这个过程中如果有问题,可以直接致电虚拟主机和域名的服务商,即使用户不懂计算机,他们的工程师也会帮助用户完成这些操作。
ASP程序的性能优化
对于网络应用程序来说,性能是每个开发人员都应该关心的问题。性能的优劣直接影响网站能够正常运行,在网站访问量很大的时,如果网应用程序的性能欠佳,就会导致用户访问超时或者打不开页面,更严重时还会让整个服务器崩溃。本讲介绍一些关于优化ASP程序性能的基本知识。
本讲要点:
*ASP程序的代码优化
*数据库优化
*网页优化
1 ASP程序的代码优化
在使用代码编写应用程序的过程中,同一个功能可以使用不同的函数、不同的语法实现。但是不同的代码页会造成程序运行的效率不同,代码优化就是找到并消灭那些影响程序运行速度的代码。
1.1尽量减少对Session对象和Application对象的使用
虽然Session对象和Application对象对ASP变成具有很重要的作用,但是由于大量使用这两个对象会增加系统内存的开销,因此如果不合理地使用Session对象和Application对象就会降低系统的性能。
没有固定的模式规定什么数据应该使用Session对象存储,什么数据应该使用Application对象存储,存储数据的对象要根据实际情况确定。通常情况下,Session对象中的数据是每个用户使用的状态信息,如用户名。Application对象中的数据是所有用户的公共信息,只有所有用户都经常访问的信息才会存储到Application对象中,如数据库的连接。
1.2 及时关闭不使用的对象
不仅是ASP程序,所有应用程序都应该及时关闭不使用的对象。如果不及时关闭没有使用的对象,大量的对象就会长时间占用系统资源,导致系统运行缓慢。只有及时关闭不使用的对象才能回收系统分配出去的资源,提高系统的性能。
使用Session对象时,如果用户30 min(分钟)内没有任何操作,系统就会自动触发Session_OnEnd事件关闭Session对象。但是假如有大量的用户频繁的读取服务器,服务器在这段时间内仍然会保持那些已经没有用的Session对象。大量的Session对象会增加系统内存的开销,如果不及时关闭使用完的Session对象,就会降低系统的性能。
另外连接数据库也是一项非常耗费系统资源的工作。对于数据库的操作最佳方案是,尽量在一次数据库连接中处理所有的操作。使用完的Recordset对象要马上赋Nothing值,将不用的数据库连接立即关闭。
1.3合理使用Include文件
在ASP文件中,可以使用语句形式包含其它的文件。这些Include文件也是ASP程序,它把自己的公共函数放到包含它的文件中,供包含它的文件调用。
因为服务器端应用程序会对文件进行预编译,所以建议不要在一个文件中包含过多的Include文件。如果一个文件包含上百个Include文件,但它只使用其中的一个或几个函数,就会造成大量的函数被加载而未被使用,浪费系统的资源。
因此在一个文件中尽可能只放入相同类型的Include文件,这样既有利于函数的查找,又可以减小Include文件的大小。
1.4尽量使用系统函数代替自己编写的函数
想要实现一个功能时,不要急于编写代码,应该先看看开发平台是否又现成的函数能够实现想要的功能。如果有可以使用的函数,不仅免去了开发的烦恼,节省了开发时间。更重要的是,在大多数的情况下系统提供的函数比自己编写的函数性能好。
例如,使用VBScript脚本语言,分割一个有规律的字符串(“ggg,sss,aaa,bbb,mmm”),如果使用自己编写的函数既浪费时间,运行速度又慢。而使用系统提供的分割字符串函数split可以直接完成这个功能。
1.5减少动态数组的使用
如果读者学习过数据结构,一定会知道在动态数组中查找一个元素(即取动态数组中一个元素的值)要比在静态数组中慢。虽然在某些情况下动态数组是必不可少的,例如,对于数组存储的数据条数不确定的情况下,或是对数组中的元素访问量不是很大时,应该使用动态数组。但是对于存储的数据条数相对稳定,或时经常访问数组中的元素时,还是应该使用静态数组。
1.6养成提前声明变量的习惯
在脚本语言中,允许不声明变量而直接使用它。虽然这样编写代码会很方便,但是这是一种不好的习惯。在应用程序使用变量时,解释器会对变量进行处理。如果提前声明变量,会加快解释器执行的解释时间。如果变量不提前声明,不仅使程序代码难以阅读,还会使程序的执行效率大大降低。
如果读者还没有养成提前声明变量的习惯,建议在每一个ASP文件的开头加上”Option Explicit”语句。它可以在当前的文件中,强制要求显示声明代码中的所有变量,如果存在没有声明的变量,它就会报错。
1.7减少Response.writ的使用
下面的量个实例完成了相同的页面输出功能,但是通过运行可以知道第一个实例比第二个实例的速度要快。这是因为第二个实例在执行时增加了服务器的解释时间,因此降低了它的性能。
实例一:
<%
Dim ok
if ok=1then %>Hello World!
<%end if%>
实例二:
<%
Response.write “”
Response.write “”
Dim ok
If ok =1 then
Response.write “Hello World!”
End if
Response.write “”
Response.write “”
%>
1.8使用一个ASP文件完成一个操作
很多人喜欢在一个ASP文件中完成诸如添加、删除、查找等多个不同操作。不要以为这样做会充分地利用文件,这样做的结果只能使应用程序的运行速度减慢。
因为随着文件的增大,解释器的解释时间也会增长。只有将添加、删除、查找等操作分割成单个的、独立的ASP文件,才能使得文件不会过于庞大,降低服务器端解释器的负担。
1.9尽量使用Server.Transfer代替Response.Redirect
Response.Redirect的功能是让浏览器重新定位到另一个页面,即把浏览器得请求发送到另一个页面。常常使用这个函数把用户得请求重新定位到一个登陆页面或错误页面。由于请求强制重定位到新页面得操作,需要浏览器必须从Web服务器往返两次,因此Web服务器必须比常规多处理一个请求,并且增加了一个没有必要得往返过程。
IIS5.0以后得版本引入了一个新的函数Server.Transfer,它可以将所有操作转移到同一台服务器上的另一个ASP页中。这样就可以避免多余的服务器到浏览器,再由浏览器到服务器的往返过程,从而改善了系统的总体性能,缩短了用户的响应时间。
对于那些不需要重新定向,而只需要转移页面的情况,建议选择Server.Transfer函数完成。
1.10对URL地址进行编码
在使ASP程序动态生成一个带参数的URL地址并进行跳转时,IE浏览器对其会正常解析,但NetScrpe浏览器对其解析时会产生如下错误:
HTTP Error 400 400 bad Request Duo to malformed syntax,the request could not be understaood by the server.The client should not repeat the request without modifications.
解决这种错误的方法是,使用Server对象的URLencode方法对生成的URL地址参数进行URL编码。
1.11在循环中避免进行字符串连接
许多程序员习惯在循环语句中建立字符串,其实这不是一个好的处理方法,采用这种方法会出现一些问题。
反复串联字符串需要花费大量的时间,运行这种结构的循环语句所花费的时间与记录数乘以字段数所得值的平方成正比。
下面通过一个简单的实例说明这个问题,其代码如下:
S=””
For i=asc(“A”) to asc(“Z”)
S=s+chr(i)
Next i
上面的实例的处理过程为:在第一次循环中,获得了只有一个字符的字符串”A”。在第二次循环中,ASP程序必须重新分配字符串并将两个字符(“AB”)复制到s中。在第三次循环中,它还必须再次重新分配s并将三个字符复制到s中。这样在第N次循环中,它必须重新非陪并将N个字符复制到s中。总共就是1+2+3+…+N次,即N*(N+1)/2次复制。可见在循环中进行字符串连接是多每可怕的一种资源消耗。
如果在ASP程序中连接字符串,建议使用+=运算符,即使用s+=”某字符串”,而不使用s=s+”某字符串”。
1.12避免使用Request(”name”)的方式获得参数值
ASP支持使用Request(”name”)的方式获得参数的值,这样做的却很方便,但是带来方便的同时它页增加了系统的开销。
因为使用Request(”name”)的方式获取参数时,解释器并不知道要从哪个集合中来取值,于是它只能顺序搜索全部可能的集合:QueryString集合 、Form集合、Cookie集合、ClientCertficate集合和ServerVarible集合直到发现第一个匹配的名称为止。这样做比直接访问指定集合的效率要低许多。
这样做的另一个弊端时造成系统安全,因为当两个集合中都存在相同名称的值时,很有可能取到的值不是自己想要的。
2数据库优化
连接数据库,对于数据库中的数据进行操作是一项非常耗费系统资源的工作。数据库优化就是为数据库操作找出最佳方案。
2.1不要随便使用”select * from”语句
如果不是想要获取数据表中的所有字段,在使用select查询语句时,就不要使用”select * from”格式的语句。虽然使用这种格式的查询语句获得的查询结果不会遗漏任何字段,但正是因为它把大量没有用的数据从数据库中提取出来,造成系统的效率降低。
实际证明在select * from语句中,指明字段提取数据的方式,比使用”select * from”方式的速度要快5%左右。
2.2尽可能使用数据库中的存储过程
既可以使用在程序代码中编写SQL语句的方式完成数据库操作,也可以使用在数据库中编写存储过程,然后通过程序调用存储过程的方式完成数据库操作。这两种方式完成的工作是相同的,但是他们执行的效率是不同的。因为使用数据库中编写的存储过程,可以免去将程序中的SQL语句传输到数据库的过程。所以这种方式比在程序代码中编写SQL语句的方式快很多。
此外在数据库中编写存储过程的方式,把对数据库的所有操作都封装在数据库中,可以提高系统的安全性。
2.3注意游标的使用方法
如果只想读取数据库中的数据或者遍历表中的所有记录,使用forward-only,read-only游标就已经足够了。即使在读取很大数据量的数据时,使用这种游标都是最快速的。
2.4不要打开无用的独立记录集
会有人打开没有用的记录集吗?当然会有。例如,在生成一个树行记录集时,不仅要打开需要的记录集,还不得不打开它的父记录集、它的子记录集,甚至还会打开它的孙记录集。其实可以使用ADO提供的Data Shaping技术,这种技术会替代打开多个独立的记录集,加快程序的运行速度。
2.5及时关闭打开的记录集对象及连接对象
有些ASP程序最初运行的速度很快,但是运行随着运行次数的增多,速度就变得越来越慢,甚至出现服务器死机的情况。这种情况的发生很可能是因为打开太多的记录集对象或连接(Connection)对象,在使用后没有关闭它们引起的。
数据库连接是非常耗费资源的对象,在数据库操作完成后我们应当使用以下的方法关闭数据库连接。
Recordset.close
Set Recordset=nothing
Set Connection=nothing
2.6比较取得记录集中数据的方法
一共有四种方法可以取得一个记录集中某个字段包含的数据。下面分别是他们的语法格式。
Recordset(“字段名称”)
RecordSet(“字段名称”).Value
RecordSet(”字段序号”)
Set 方法
这四种方法的执行速度时不同的,其中Set方法最快,其次是Recordset(”字段序号”)方法,再次是Recordset(”字段名称”).Value方法,最慢的是Recordset(”字段名称”)方法。
下面介绍Set方法实例。
Dim strSQL
StrSQL=”select name, sex, age from yourtable”
Dim rs
Set rs=server.createobject(”ADODB.RECORDSET”)
Rs.open strSql, conn,1,1
Const fieldsOrder=2
Dim objOrder
Set objOrder=rs(fieldsOrder)
Response.write objOrder ‘Set方法
2.7使用字符串建立SQL查询
使用字符串建立数据的查询不仅不能加快服务器的解析速度,反而还会增加服务器的解析时间。但是本书仍然推荐使用字符串代替简单的查询语句进行查询,这样可以方便查找应用程序出现的问题,从而迅速地完成程序编码工作。
例如,在进行条件选择时,尽量使用case语句,避免使用if语句。使用case语句可以使程序流程化,执行的速度也比if语句快。
2.8 where语句中表之间的关联条件放在后面
前面我们已经介绍Where后面的条件语句是平等的。但是在实际使用过程中,如果Where后面的条件语句时对数据库的查询畜力 ,因为条件语句的顺序不同,会造成应用程序的执行效率不同。
例如,有两条执行SQL查询的语句,如下所示:
”Select Student.Name, Class.Name From Student,Class wher Student.ClassId=Class.Id And Student.Age >20”
”Select Student.Name, Class.Name From Student, Class Where Student.Age>20 And Student.ClassId=Class.ID”
第一条语句先将Student表中所有的记录同Class表中所有的记录进行匹配,然后再筛选出Student.Age大于20的记录。而第二条语句先筛选出Student.Age大于20的记录,然后再将筛选出的记录同Class表中的记录进行匹配。虽然这两条语句都会得到相同的结果,但是由于第二条语句需要匹配的记录数比第一条语句少,因此第二条语句的执行速度比第一条快。当表中具有大量记录时,这种速度差异会更明显。
2.9为了速度放弃数据库结构的规范化
这是一种迫不得已的方法。放弃范式的规则不仅会增加数据库的冗余,还可能会带来修改、删除操作的错误。但是在数据规模很大时,多表查询只会带来致命的系统开销。为了避免进行多表查询操作,在实际应用中可以适当地增加数据冗余。
2.10为每个表都建立索引
索引可以提高查询速度,尽可能为数据库中的每一个表添加索引。
2.11分页显示用存储过程来实现
当数据库中表的数据量很大时,使用Recordset对象的分页属性,实现查询结果的分页就不再是一个很好的选择。因为这个属性先要把所有查询结果都提取出来,然后再根据获取的数据设置字段进行分页,在数据量很大时它的效率会很低。最好的解决办法是使用SQL语句查询出某一页的记录集。为了提高速度,还可以将这个SQL语句封装成数据库中的一个存储过程。
2.12数据库中尽量不要存储图片、文件等数据
为了减少数据库的负担,要把网站中的图片和文件存储在服务器的目录中。一般图片和文件的体积都很大,因此从数据库中查找和读取这些数据时,会大大增加应用程序的开销。
3网页优化
网页优化就是对页面信息和页面实现功能的方法进行优化。
3.1减少网页中的图片及其他多媒体信息
图片、动画、视频、音频可以使网页的内容丰富多彩,可以吸引用户的视线,但是它们也会大大增加系统的开销。如果网页打开速度受到网页上图片的影响,那么就要考虑对图片做适当的修改,如把每个图片的尺寸变小、分辨率降低等。对一些意义不是很大的图片最好删除。
3.2将有关下载的文件放在一个FTP服务器中
如果网站提供的下载内容很多,最好把可下载的文件放在FTP服务器中,和网站服务器相比它具有更高的文件传输效率。
3.3把动态页面替换成静态页面
如果在已经尝试过ASP的所有技术和方法后,还是解决不了访问速度的问题。就需要考虑把动态页面替换成静态的页面,用户访问静态页面,不需要服务器解释页面的内容,访问静态页面的速度必然比动态页面的快。
电脑扼杀了时间,还是扼杀了我们
越来越觉得自己的大多数时间都耗费在了电脑上了,早上起床,第一件事情便是打开电脑。然后才是洗漱,有东西吃的话便是一边上网一边吃所谓的早餐,没有的话早饭也就不了了之。想要做东西,在电脑前忙乎了半天发现什么都还没开始,不是开播放器放音乐便是上网看新闻。如果没有网络,手头要做的东西便无从下手,没灵感没创意,没知识没技术,都需要去网上盗取。我有时候特别这么觉得,自己是个贼,偷窃着网络上别人的无形资产,在每次沾沾自喜后或多或少也有点惭愧。然而直到睡觉前洗澡,也不舍得把电脑关掉。非要等澡洗好了之后,爬上床之前,才肯合上笔记本依依不舍的爬上床去。第二天又重复着前一天的事情。
这几天我一直在想这么一个问题:”电脑扼杀了时间,还是扼杀了我们?“。因为有了电脑,我的时间大部分都在它上面,除了上课以及睡觉,几乎都是坐在电脑前,要不发呆,要不看看电影;有时候会装模作样的一边听着音乐,一边拿着书在那里看,半天过去了仍旧没翻过几页。很怀念高中之前的日子,自己能够安静的看一天的书,能够研究一个晚上的数学题目,可是现在不行了。自己根本无法离开电脑,文档需要用电脑处理,作业需要用电脑做,与朋友联系也得通过电脑。而手机只是人没在电脑前时的替代品。夜深了,仍旧不肯睡,并不是因为有什么功课非得熬夜,仅仅是在折腾电脑而已,或者说是电脑在折腾我。
无可否认电脑有时候为我们节省了很多时间,但是我及我的一些朋友们同时也将节省出来的时间花费在了电脑上。而且是心甘情愿的花在它上面,用它游戏或者电影。某天觉悟到在自己浪费了时间的时候,简单的安慰自己明天要努力功课……到第二天这些便又抛之脑后,继续变本加厉。
电脑不仅让我及我的一些朋友们浪费了大量的时间在它的上面,同时它也扼杀了我们。扼杀了我们的智慧,扼杀了我们的想象力。因为有它,我们便不愿再自己动脑想,任何事物便是GOOGLE之(或者百度之)。我感觉自己在变笨,也许是太聪明了,看到了以前笨的自己。
也许电脑并没过错,而这一切都只是我们懒惰造成的结果。可以克制自己使用电脑的时间、内容及频率,这是我迫切需要做到的。