基于html和mongodb的电子产品购物网站-马志强_第1页
基于html和mongodb的电子产品购物网站-马志强_第2页
基于html和mongodb的电子产品购物网站-马志强_第3页
基于html和mongodb的电子产品购物网站-马志强_第4页
基于html和mongodb的电子产品购物网站-马志强_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要大部分网站都还停留在使用传统的html+css上,通过对其他相似课题文献的调查研究,本系统更多的集中在如何使购物网站能够在保证个人信息安全的同时提高系统运行效率,也要给用户良好的体验感。因此本系统决定使用nodejs搭建运行环境,express框架作为系统本系统开发框架,利用ajax异步操作来提高用户体验和数据交互速度,使用了当下较为流行的nosql数据库——MongoDB数据库:具有更高的插入速度、能处理大规模的单表、可以快速、安全以及自动的实现数据转移、查询速度更快、非结构化的爆发增长等。大量使用session缓存代替传统cookie缓存、自定义加密方法对用户密码加密之后再保存到数据库使用户数据的安全性得到极大地提高。遵循MVC设计模式,高内聚低耦合,系统便于使用和管理、优化。关键词:nodejsMongoDBMVCexpressejs

AbstractMostwebsitesstillusetraditionalHTML+CSS.Throughtheinvestigationandresearchofothersimilarsubjects,thissystemfocusesmoreonhowtomaketheshoppingwebsitetoensurethesecurityofpersonalinformationandimprovetheefficiencyofthesystem,butalsotogiveusersagoodsenseofexperience.Therefore,thesystemdecidedtousenodejstobuildtherunningenvironment.Asthedevelopmentframeworkofthesystem,expressframeworkusedAjaxasynchronousoperationtoimprovetheuserexperienceanddatainteractionspeed.ItusedthecurrentpopularNoSQLdatabasemongodbdatabase,whichhashigherinsertionspeed,canhandlelarge-scalesingletable,andcanquickly,safelyandautomaticallyrealizedataTransfer,queryfaster,unstructuredexplosivegrowthandsoon.Sessioncacheiswidelyusedinsteadoftraditionalcookiecache,anduser-definedencryptionmethodisusedtoencrypttheuser'spasswordbeforesavingittothedatabase,whichgreatlyimprovesthesecurityoftheuser'sdata.FollowMVCdesignmode,highcohesionandlowcoupling,thesystemiseasytouse,manageandoptimize.keyword:nodejsMongoDBMVCexpressejs 目录TOC\o"1-3"\h\u第一章引言 引言研究现状伴随着网络的普及,传统购物行业已经逐渐被电子商务所取代,传统行业的倒闭速度不断加快,每个城市的步行街在不断消失,消费者在不断减少。人们对网上购物的依赖性越来越大。网络销售成本明显比线下销售成本低:不需要雇佣太多店员,不需要门店。给予用户更直观的购物体验:购物后才能对商品进行评价、越来越严格的刷单惩罚条款等。网上购物性价比更高:更容易货比三家,同一样东西商户无法肆无忌惮的抬高价格;同样的时间在线上逛的店远比线下多的多;人越来越懒导致的更不想动,逛一下午步行街消费者会疲惫不堪,而逛一天电子商城消费者依旧精神抖擞且不会手脚发麻疼痛。国内外并没有完全成熟的只负责做电子产品销售的网站或APP,竞争不过多样性客户的平台:客户类型、交易量的制约,消费者对电子商务高额度消费的疑虑,购物平台的运维成本等。研究目的鉴于国内外这种现状,本系统在只负责做电子产品销售的同时希望尽可能提高用户隐私的安全性,提高用户体验感。一是为了让用户有一个安心放心的购物平台,专一的才能做到最好。二是让用户有良好的购物体验,有一种顾客是上帝的感觉。研究思路和内容目前购物网站技术已经较为成熟,所以我查看的文献主要是以如何优化为主:目前国内外的web页面还是大部分使用的传统web框架,主要特点是前后端分离,前后端的开发需要不同的团队执行,成本较高,且在用户体验和信息处理方面还有待提高,web应用系统面临着高并发访问的难题,传统的数据库不支持大批量数据处理,就连淘宝京东等也开始使用Nosql数据库,在此时此刻,基于html的mongodb数据库就能很好处理大批量数据处理的问题,而高并发难题恰恰是nodejs异步非堵塞的特点可以解决的[1][2]。拥有着高并发特点,但并不意味着就不需要系统优化,太强大的DOS攻击同样会导致系统瘫痪,在加强过滤筛选规则的同时本系统所应用的nodejs能够解决数据重复申请或者上传的问题,减少对服务器对数据库的访问,在一定程度上提高了系统运行速度和安全性。此外引入了nodejs的express框架[3][4],将一小部分数据放在前端,减少服务器负担,加强系统安全性,如帐号密码等,不使用url数据传递或者cookie保存数据等。系统可行性分析本系统决定使用nodejs搭建运行环境,利用异步操作来提高用户体验和数据交互速度,此外使用了当下较为流行的nosql数据库:MongoDB数据库,可以更快的插入数据到数据库中、能处理更大规模的单表、可以在保证安全性的同时更高速更智能的实现数据转移、查询速度更快、非结构化的爆发增长等特点都是提高购物网站效率所急需的。

系统开发的关键技术研究2.1nodejs简介2.1.1特点Nodejs是一个后端JavaScript运行,在不对前端JavaScript进行改写的基础上将其迁移到了服务器端,使得JavaScript从一个只支持前端语言变成前后端通用语言[5]。Node区别于其他语言最大的特点便是异步非堵塞特点。而在nodejs中,如果不改动代码,按照其接口或者函数来运行的话绝大多数都是异步操作。这样我们能够从语言层次就轻松进行并行I/O操作。优化了用户体验的同时提高了系统运行速率。事件驱动特性使得系统能更好的按照MVC模式设计,在并行I/O操作的时候将事件交给业务逻辑,可以同时的大量的处理事件,有必要时业务逻辑也可以采用并行I/O,可以说系统运行速度称之为极速也不为过。回调函数的存在使得也是配合着以上两个特点来使用的,如果没有回调函数,意味着要在服务器端就将数据将事件全都处理好,这对后端人员是一个极大的挑战。Nodejs能很好的兼容JavaScript。JavaScript语言很大的一个特点是单线程操作,因为JavaScript主要是用来响应用户操作以及对页面上的节点进行操作。在nodejs中,JavaScript是跟其他线程相互独立的,很完美的兼容了JavaScript语言。与此同时child_process子进程的出现,让nodejs在单线程方面的健壮性和多核CPU运用方面得到了充分满足,通过将计算分解之后分配给不同的子进程,然后通过回调函数来传递结果,使得开发模型变得轻便。Master-Worker模式的管理方式也让nodejs具备更高的健壮性[6][7]。2.1.2应用场景那么基于以上特点就可以清楚的了解到nodejs适合什么样的场景什么样的应用。I/O操作频繁的场景单从单线程的I/O密集操作上来说,nodejs的处理能力绝对是有数的,nodejs能够高效的统筹更多的应用来达到更好的服务效果。Nodejs在这方面的优势是利用事件驱动的特性循环处理,而并不是常人思想上的开启每一个线程为每一个操作进行相应[8]。CPU密集型在执行效率上,V8的执行效率肯定是没人否定的,nodejs能很好的兼容JavaScript在上文是有提到过的。但CPU密集给nodejs带来的问题在于JavaScript单线程的问题,因为单线程,如果长时间计算会导致cpu时间片不能被释放,总所周知,cpu一旦一直被占用,那么除了等到cpu空闲下来谁也做不了什么操作。但nodejs通过将计算分解之后分配给不同的子进程,然后通过回调函数来传递结果保证了不阻塞I/O调用的发起,多线程可以频繁发起,单线程又可以有更高的计算效率。2.2VisualStudio简介VisualStudio集成开发环境是一种创新启动板,可用于编辑、调试并生成代码,然后发布应用。

集成开发环境(IDE)是一个功能丰富的程序,可用于软件开发的许多方面。

除了大多数IDE提供的标准编辑器和调试器之外,VisualStudio还包括编译器、代码完成工具、图形设计器和许多其他功能,以简化软件开发过程。VisualStudio简称vs,里面集成了大量的开发环境,可以说是很丰富了。作为一个开发工具,肯定有着大多数IDE都有提供的编译器和调试器。作为一个高大上的集成开发环境,一些帮助提高工作效率的小功能小插件也是必备的。波浪线提示是一个很舒服的功能,在编译工作进行的时候一边帮助你纠正大多数的小细节性错误,从此马虎远离你我他。配合波浪线提示的是快速操作功能,如果将鼠标放在波浪线错误代码上,会有关于这个代码错误的其他信息,比如缺少右分号等信息,或者在左边距中也有一个红叉叉或者黄灯泡,会有关于该错误的英文提示和可选修复错误选项。代码重构功能,代码封装重构是每个人做编程工作的时候必不可少的操作了,相信有不少人愿意也会花大量时间来做代码封装重构,因为这意味着可以使代码接近框架源码,不只是这个项目,在其他项目中也不需要再重复敲写代码了。搜索框的出现对于大工程项目来说可是一个很大的福利,不需要自己在去记忆该代码或者代码块大概在哪个区域然后再一行行找,只需要直接使用搜索框就可以了。如果是协同工作的话对于协同人员来说,不需要再去通读相关代码块代码文件,提高了工作效率。当然,代码的规范化还是要好好做的,否则杂乱无章的代码会使人毫无工作欲望。造成开发以及运维人员的不便。协同工作不只是搜索框的出现,对应的是LiveShare功能:实时的安全的共享项目,可以根据需要调整,更可以语音呼叫,一个功能实现类似于金山文档和通讯工具等多个功能。转到定义和速览定义功能更是针对大量代码而产生的,将开发人员直接传送到函数定义的位置或者类型定义的位置,不受是否为同个文件同个文件夹的影响。速览定义功能,顾名思义,它会在你想要看到定义的地方出现一个类似于模态框的东西,可以清楚看到该函数该变量的定义内容。2.3数据库介绍Mongodb数据库是nosql数据库其中之一,在非关系型数据库领域一直在独占鳌头。此数据库的出现是为了更快更高效的开发web应用,具有高速I/O的性能,而且区别于传统数据库的地方在于可以弹性扩展,不再需要跟sql数据库一样添加一个数据就是要添加一行数据,可以为0但不可以没有。增大了数据库的占用空间的同时造成了数据读写传送的不便。Mongodb是一个文档类型数据库,顾名思义,就是利用文档来存储数据,不再使用关系型数据库当中的表格形式,一个文档就是一个数据库表。当然,作为一个数据库,一些如同动态查询、二级索引等功能在mongodb中也是支持的。

购物网站的设计3.1需求分析3.1.1系统功能分析登录注册功能:对用户的用户名密码类型和长度进行限制,注册时不可重复注册数据库中已有的用户名。搜索/推荐:搜索功能,且根据用户最近搜索记录推荐相应类似的商品订单管理:对用户已购买或者未购买订单进行管理,删除查询修改等。商品详情:商城商品的详细信息,款式、颜色、大小、价格等。商品上下架:店主对自己店铺的商品管理,上架下架修改商品信息等。浏览记录:用户在商城中最近的浏览记录。库存管理:店主对商品数量可设置一个最小值,当低于最小值时会出现库存预警弹框。数据备份和恢复:数据库的数据备份和还原。3.1.2系统设计分析根据身份不同划分为四个级别的权限:一级权限:普通用户(游客)二级权限:购物商城店主三级权限:购物商城管理员四级权限:数据库管理员3.2系统设计3.2.1系统模块设计根据系统功能分为以下几个方面:一:用户模块主要是用户的登录注册,用户权限的筛选,用户信息的修改,用户浏览记录。二:商品模块购物商城中商品信息,商品上下架,库存预警,商品订单管理。三:系统功能模块包括购物商场的商品搜索和推荐,数据库的备份和还原。3.2.2系统模块的程序流图图3-1注册程序流图打开系统注册页面,输入用户名/密码/校验密码,输入框旁边会有提示,当鼠标失焦时若符合规范,无文字提醒,若不符合规范,会有注册规则提示且点击注册按钮无响应。若符合注册规则则提示注册成功,插入数据到数据库中并跳转到登录页面图3-2登录程序流图打开登录页面,输入符合规范的用户名/密码,若不符合规范在输入框旁会有文字提醒且点击登录按钮无响应。若符合规范,在数据库中查询是否存在匹配的用户名及密码,匹配成功提示登录成功并跳转到首页,匹配不成功返回登录页面。图3-3推荐程序流图用户登录进入首页时数据库自动查询浏览记录并用session形式返回到客户端,客户端将数据渲染到搜索框下方。

图3-4搜索商品程序流图用户或者游客进入首页点击搜索按钮,输入想搜索的商品信息,点击搜索时数据库以正则表达式形式查询是否存在符合条件的商品,存在时将数据传递到客户端,跳转页面并将数据渲染到页面中。若不符合条件,则返回首页。图3-5订单管理程序流图用户登录之后进入订单管理页面,对该用户的订单进行查询修改删除,由于存在同个用户多个客户端登录的情况,可能导致操作冲突,此时弹出提示信息框并刷新订单详情页。操作成功则刷新页面。图3-6订单详情程序流图用户/游客在首页或者推荐页/订单详情页等有商品名字/图片链接的页面,点击该商品,客户端将商品id以session形式发送到服务器端,服务器在数据库中查询该商品信息,若商品已下架,则提示查无此商品并返回首页。若存在该商品则跳转到商品详情页。图3-7商品上下架程序流图用户登录后点击店铺管理链接时从数据库中验证用户权限,如果用户是店主身份,则跳转到店铺商品信息页面,查询该店商品数据并渲染到页面上。若不符合权限,则提示非店主并返回首页。图3-8历史记录查询程序流图用户登录后点击浏览记录链接,数据库查询该用户浏览记录,若存在浏览记录则跳转到浏览记录页面并渲染数据。若不存在浏览记录,在浏览页面中显示热门商品信息列表。图3-9库存报警程序流程图店主登录之后点击店铺管理,当中有一个库存量预警功能,可设置最低库存量预警,此后每次登录时都会自动对照商品是否达到警戒点,若达到了警戒点则弹出警戒框,否则无任何反映。图3-10数据库增删查改程序流程图数据库管理员在可视化数据库管理工具中登录,通过权限验证即可登录数据库对数据库进行操作。图3-11数据库备份和恢复程序流程图数据库管理登录数据库软件后,可使用数据库自带的备份以及还原语句对系统数据库进行备份/恢复。3.3数据库设计Mongodb是一个文档类型数据库,表现形式为bson。类似于json数据的格式可以用来储存关系型数据库无法存储的非结构性的复杂数据类型。可以在一个数组里面再嵌套一个数组甚至多个数组。在本系统中主要用来做商品信息的存放,购物车商品信息及数量的存放等。商品信息各不相同,有些是大小有些是长度,可选款式也不同。本系统的购物车主要是在用户数据表中插入购物车数组,其中一个数据为该商品id,另一个数据为购物车中该商品数量,在用户进入购物车的时候通过表单关联查询的方式,使用商品id在商品数据表中查询到该商品信息渲染到页面上。非常适合用来做不规则数据的读写。

3.3.1数据库图表图3-12数据库E-R图数据库可以是嵌套bson数据,可通过数据关联的方式对其他数据表进行连接,商品信息表则是所有商品的所有数据。图3-13用户数据表实体图Id为数据库自带objectid,是每个数据插入数据库中自动生成的bson15位数数据,不允许空对象;用户名为6-20位数,类型为数字或字母的string类型,密码也一样;浏览记录为嵌套bson数据,保存着用户最近浏览过的20条商品信息,新用户则为空对象;店铺商品是注册为店主的用户特有属性,若用户权限不够则无法也没有店铺商品数据,最多可上架50个商品;搜索记录为嵌套bson数据,若用户没有使用过搜索功能则对象为空,否则只保留用户最新搜索的20条信息;购物车为嵌套bson数据,若用户没有增加商品到购物车中可为空,否则最多添加20样商品到购物车中;订单为嵌套bson数据,若用户没有购买或者未付款订单,则对象为空,最多保留20条订单信息;用户权限为1到4级,不可为空。用户数据表如下图所示:表3-14用户数据表序号数据元素数据类型数据长度允许空1idBSON

12否2用户名String6-20否3密码String6-20否4浏览记录Json20是5店铺商品Json50是6搜索记录Json20是7购物车Json20是8订单Json20是9用户权限Int1否图3-15商品实体图Id为数据库自身生成的bson数据,不可为空;Price是商品售价;color是商品颜色,有些商品或者店铺并没有其他颜色该商品,可为空;edition是商品款式;click是该商品被点击次数,为搜索引擎重要排列顺序来源,初始为0,不可为空;num为商品库存;img为商品图片存放路径,是页面img标签链接,不可为空;weight为商品重量;discount为商品描述性语句。表3-16商品信息数据表序号数据元素数据类型数据长度允许空1IdBson12否2PriceInt否3ColorString是4EditionString否5ClickInt是6NumInt是7ImgString是8WeightInt是9DiscountString否图3-17搜索记录实体图搜索记录表为用户推荐商品的重要来源,id是数据库插入数据时自动生成的,不可为空;在此表中为商品关联查询的唯一索引;Time是保存搜索时间的数据,由于只保存最新20条搜索记录,所以不可为空。表3-18搜索记录表序号数据元素数据类型数据长度允许空1IdBson12否2Timetime_t否图3-19购物车信息实体图Id是商品信息表中的id,也是关联查询商品信息的唯一索引;num是该用户该商品已付款或者未付款的商品数量。表3-20购物车信息表序号数据元素数据类型数据长度允许空1IdBson12否2NumInt否图3-21订单信息实体图Id为商品id;付款状态是区分已付款未付款信息的数据;num为该商品已付款或者未付款的数量。表3-22订单信息表序号数据元素数据类型数据长度允许空1IdBson12否2付款状态boolean

否3退换货状态String否4下单时间time_t否5NumInt否6订单号Int16否图3-23店铺商品信息实体图Id为商品id,num为该店主该商品的库存数量。表3-24店铺商品信息表序号数据元素数据类型数据长度允许空1IdBson12否2NumInt否3.3.2连接数据库MongoDB一般都是本机直接连接,不需要帐号密码。但作为一个商业性系统的数据库是必须有身份认证登录的,一是可以远程连接,二是为了数据安全性。每一个服务器都必须有一个固定的ip地址,每次连接服务器都有不同ip地址的话会导致连接不上,所以需要先有一个固定的ip地址,然后采用数据库远程连接的方式建立数据库连接。

购物网站的实现和效果分析4.1系统功能实现和界面效果分析4.1.1用户模块主要功能用户模块主要包括:用户的登录注册,用户权限的筛选,用户信息的修改,用户浏览记录。4.1.2界面效果及部分代码图4-1登录页面图登录时输入框旁会有用户名及密码规则提示,若不符合规则则点击登录按钮无响应。若符合规则则查询数据库是否有匹配用户数据,匹配则跳转到首页,否则提示用户名错误/密码错误并在三秒后跳转页面。部分代码如下:<script>

var

form1

=

document.getElementById('form1');

var

username

=

document.getElementById('username');

var

usernameTip

=

document.getElementById('usernameTip');

var

password

=

document.getElementById('password');

var

passwordTip

=

document.getElementById('passwordTip');

function

validUsername()

{

if

(username.value.length

<

6

||

username.value.length

>

20)

{

usernameTip.innerHTML

=

'长度必须是6-20个';

return

false;

}

for

(var

i

=

0;

i

<

username.value.length;

i++)

{

var

c

=

username.value.charCodeAt(i);

if

((c

>=

48

&&

c

<=

57)

||

(c

>=

97

&&

c

<=

122)

||

(c

>=

65

&&

c

<=

90))

{

//不用管

}

else

{

usernameTip.innerHTML

=

'必须是字母或数字';

return

false;

}

}

usernameTip.innerHTML

=

'正确!';

return

true;

}

function

validPassword()

{

if

(password.value.length

<

6)

{

passwordTip.innerHTML

=

'长度必须是6个以上';

return

false;

}

for

(var

i

=

0;

i

<

password.value.length;

i++)

{

var

c

=

password.value.charCodeAt(i);

if

((c

>=

48

&&

c

<=

57)

||

(c

>=

97

&&

c

<=

122)

||

(c

>=

65

&&

c

<=

90))

{

//不用管

}

else

{

passwordTip.innerHTML

=

'必须是字母或数字';

return

false;

}

}

passwordTip.innerHTML

=

'正确!';

return

true;

}

username.onfocus

=

function

()

{

usernameTip.innerHTML

=

'请输入6-20个数字或字母';

}

username.onblur

=

validUsername;

password.onfocus

=

function

()

{

passwordTip.innerHTML

=

'请输入6-20个数字或字母';

}

password.onblur

=

validPassword;

form1.onsubmit

=

function

()

{

if

(validUsername()

==

true

&&

validPassword()

==

true)

{

return

true;

}

else

{

return

false;

}

}</script>图4-2登录后首页图图4-3已登录下拉框图图4-4未登录下拉框图若未登录用户,在首页右上角会显示欢迎使用字样,旁边的下拉框有登录注册按钮,若已登录,则显示用户名,旁边下拉框则是个人信息跳转链接以及退出按钮。导航条为include注入,有商品管理页面、购物车、收藏夹、商品分类以及联系客服按钮。部分效果图如图4-2、图4-3、图4-4所示部分代码如下:<body>

<div

style="height:

60px;"><%-

include('./head')

%></div>

<%

data.forEach(function(data)

{

%>

<div

div

class="out"

onmouseover="this.className='in'"

onmouseout="this.className='out'">

<img

src="data.src"

title="data.discount"><br>

<a

id=""></a>

<%

});

%>

</div></body>router.get('/',

function

(req,

res,

next)

{

console.log(123);

commodity.find({},{},function(err,result){

if

(err)

{

res.render('msg',

{

msg:

'注册失败!',

nextPageName:

'注册页面',

nextPageUrl:

'/register'

});

res.render('index',

{

title:

'Express',

data:

result

});

}

})

});图4-5订单管理界面登录后可进入订单管理页面,一页最多显示四条数据,总共五页刚好显示在数据库中保留的20条订单数据。左边是导航菜单,可以跳转到购物车和浏览记录页面,可点击订单商品名字/图片跳转到商品详情页。点击修改按钮弹出模态框,可对商品部分属性进行修改:备注、退换货等操作。图4-6商品分类界面由于系统商品日渐增多,设置了电子产品分类导航,使用户能浏览某一类型的商品,提高用户体验。图4-7修改个人信息页面购物网站也可以作为交友平台,因此一个完善的用户信息表是必备的,目前网站只有用户名、年龄、头像、邮箱、手机号信息,并且用户在填写后依旧可隐藏某一项或者某几项数据,不会对用户造成困扰的。且有专门的修改密码页面,一是避免一次填写过多数据,二是减轻服务器负担。

系统测试和调试5.1测试计划5.1.1测试过程前期测试准备:阅读需求报告,了解项目需求;中期测试准备:评估测试时间;制定测试用例后期测试流程:根据项目使用手册以及中期测试准备中的素材进行测试并拟写测试用例报告;反复测试并编写测试报告5.1.2测试方法功能测试:主要采用的是边界值分析法用户界面测试:基本上所有测试人员采用的都是场景分析法兼容性测试:因为本系统是购物商场系统,不受电脑操作系统影响,所以测试的是各个浏览器对本系统的兼容性,使用了不同浏览器验证系统兼容性。安全性测试:应用程序级别的安全性测试。容量测试:黑盒测试。性能测试:黑盒测试。5.2测试用例以及结果测试在注册功能中是否能注册不符合规范的用户名/密码,注册成功后能否插入数据到数据库中:表5-1注册流程测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明1成功新增用户-成功登录系统在注册页面填写合法信息,点击‘注册’按钮在登录页面输入新注册的用户名、密码点击‘登录’按钮查看数据库是否插入数据注册成功后,提示用户注册成功并跳转到登录页面用户使用新增成功的帐号能成功登录系统,且显示用户名在导航条数据库中已新增该用户数据用户名:1005380483登录密码:7758258ainime校验密码:7758258ainime测试通过正常2用户名称不合法,新增用户失败在注册页面填写不合法信息,点击‘注册’按钮在登录页面输入新注册的用户名、密码查看数据库中是否新增数据在注册页面输入框旁边显示请输入6-20位数字或字母用户名点击注册按钮无响应新增用户失败后,在用户列表未显示该用户相应信息用户新增失败的用户名、密码,不能登录系统,提示该用户未注册,返回登录页面用户名:空/、、/,,/。。等登录密码:7758258ainime校验密码:7758258ainime测试不通过非法用户名无法注册3密码不合法,新增用户失败进入注册页面填写非法密码,点击‘注册’按钮返回登陆页面输入注册的用户名、密码查看数据库中是否新增数据在注册页面输入框旁边显示请输入6-20位数字或字母密码点击注册按钮无响应新增用户失败后,在用户列表未显示该用户相应信息用户新增失败的用户名、密码,不能登录系统,提示该用户未注册,返回登录页面用户名:1005380483注册密码:./1008611等校验密码:./1008611测试不通过非法密码无法注册4校验密码错误,新增用户失败使用注册功能,进入注册页面填写合法用户名和密码,与注册密码不同的校验密码,点击‘注册’按钮查看数据库中是否新增数据新增用户失败后,提示用户注册失败,请重新填写新增用户失败后,在用户列表未显示该用户相应信息用户新增失败的用户名、密码,不能登录系统,提示校验失败,注册系统失败,返回登录页面用户名:1005380483登录密码:7758258ainime校验密码:wayingting970129测试不通过错误校验码无法注册5重复用户名,新增用户失败使用注册功能,进入注册页面填写合法信息,用户名处写入以存在的名称,点击‘注册’按钮返回登陆页面输入重复注册的用户名、密码点击‘登录’按钮新增用户失败后,提示用户该用户名已注册,请重新注册新增用户失败后,在用户列表未显示该用户相应信息用户新增失败的用户名、密码,不能登录系统,提示用户名重复或错误,返回注册页面用户名:重复名称登录密码:7758258ainime校验密码:7758258ainime测试不通过重复用户名无法注册6不填写任何信息,新增用户失败使用注册功能,进入注册页面直接点击‘注册’按钮返回登陆页面点击注册按钮无响应用户名:空登录密码:空校验密码:空测试不通过不填写任何信息无法注册

对注册登录界面是否满足需求规格进行测试:表5-2用户界面测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明1注册页面使用注册功能,进入注册页面能成功打开新增用户界面;界面布局及其他规范(如:字体)与需求/设计说明书一致;用户名称、登录密码、校验密码文本框可输入;界面中的注册、重置按钮可用且事件未丢失用户名称:1005380483登录密码:7758258ainime校验密码:7758258ainime测试通过注册页面符合需求2登陆页面打开登陆页面能成功打开新增用户界面;界面布局及其他规范(如:字体)与需求/设计说明书一致;用户名称、登录密码、校验密码文本框可输入;界面中的保存、取消按钮可用且事件未丢失用户名称:1005380483登录密码:7758258ainime测试通过登陆页面符合需求

由于本系统为网站,不受电脑操作系统的影响,但是受客户端类型的影响,因此本测试用例主要测试了几个主流浏览器对本系统是否兼容:表5-3兼容性测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明1使用IE浏览器,测试新增用户功能打开IE8浏览器使用管理员账号成功登录系统点击“用户管理”链接,进入用户管理模块点击‘新增’按钮,进入新增用户页面填入用户信息,点击‘保存’按钮界面布局及其他规范(如:字体)与需求/设计说明书一致,未出现数据错位现象;界面中内容显示完整界面中的保存、取消按钮可用且事件未丢失用户名称:1005380483登录密码:7758258ainime校验密码:7758258ainime测试通过IE浏览器可正常使用2使用Firefox浏览器,测试新增用户功能打开Firefox浏览器使用管理员账号成功登录系统点击“用户管理”链接,进入用户管理模块点击‘新增’按钮,进入新增用户页面填入用户信息,点击‘保存’按钮界面布局及其他规范(如:字体)与需求/设计说明书一致,未出现数据错位现象;界面中内容显示完整界面中的保存、取消按钮可用且事件未丢失用户名称:1005380483登录密码:7758258ainime校验密码:7758258ainime3使用360浏览器,测试新增用户功能打开360浏览器使用管理员账号成功登录系统点击“用户管理”链接,进入用户管理模块点击‘新增’按钮,进入新增用户页面填入用户信息,点击‘保存’按钮界面布局及其他规范(如:字体)与需求/设计说明书一致,未出现数据错位现象;界面中内容显示完整界面中的保存、取消按钮可用且事件未丢失用户名称:1005380483登录密码:7758258ainime校验密码:7758258ainime

主要对需要不同用户权限的功能进行测试,测试系统是否筛选规则完善,具有高安全性:表5-4安全性测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明1用户管理功能分别使用买家/卖家/管理员账号成功登录系统点击“用户管理”链接,进入用户管理模块使用买家账号登陆后在其菜单栏不可见“用户管理”和“商品上下架”链接使用卖家账号登陆后在其菜单栏不可可见“操作员管理”链接,但可见“商品上下架”链接,且能成功点击该链接进入该模块使用管理员账号登陆后在其菜单栏可见“操作员管理”和“商品上下架”链接,且能成功点击该链接进入模块用户名称:对应账号登录密码:对应密码校验密码:对应校验码测试通过各级用户相应权限符合需求2商品管理使用卖家/管理员账号登陆点击“商品管理”链接,进入商品管理模块输入商品信息,点击“确认”保存信息点击“下架”链接,商品下架成功点击“审核”链接,可审核商品是否符合规范使用卖家用户登陆后在其菜单栏可看到“商品上下架链接”,且能成功点击该链接进入该模块使用管理员账号登陆后在其菜单栏可看到“商品审核”链接,且能成功点击该链接进入该模块用户名称:对应账号登录密码:对应密码校验密码:对应校验码测试通过各级用户相应权限符合需求

对本系统同一时间登录大量用户是否会导致系统崩塌以及高频率登录用户是否会导致系统崩塌进行测试:表5-5性能测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明150个已注册用户同时登录打开首页输入用户名、密码点击“登录”按钮出错率不超过10%系统响应时间在10S内内存占有率不超过90%CPU使用率不超过90%用户名:参数化数据表数据密码:参数化数据表数据测试通过性能良好2每次登陆20个用户,每次登陆相隔5秒,共耗时50秒打开首页输入用户名、密码点击“登录”按钮出错率不超过10%系统响应时间在10S内内存占有率不超过90%CPU使用率不超过90%用户名:参数化数据表数据密码:参数化数据表数据测试通过性能良好

对本系统数据库是否支持同时插入大量数据以及大量数据是否会导致数据库瘫痪进行测试:表5-6容量测试用例编号测试项操作步骤预期结果数据实际结果结果比较说明150个并发用户同时查询商品信息打开首页输入用户名、密码点击“登录”按钮进入商品信息页面输入查询条件点击查询按钮出错率不超过10%系统响应时间在10S内内存占有率不超过90%CPU使用率不超过90%用户名:对应账号密码:对应密码测试通过良好2添加最大的容量数据打开首页输入用户名、密码点击“登录”按钮进入商品信息页面输入商品信息点击保存按钮(此处暂定为2w条)出错率不超过10%系统响应时间在10S内内存占有率不超过90%CPU使用率不超过90%用户名:对应账号密码:对应密码测试通过在达到最大容量时功能能够正常运行;

系统优化及合理化建议6.1系统优化的内容6.1.1数据缓存不再使用传统的cookie缓存用户帐号密码的方式,而是通过session缓存的方式存储在服务器端,给session一个特定的cookie码,使其在需要存取session数据的时候能被服务器有效识别。6.1.2文件上传传统的nodejs原生实现是使用formidable模块进行文件上传,再通过path模块获取文件名,通过构建输入流和输出流管道实现文件跨磁盘移动。新优化的文件上传功能使用的是express框架中的multer模块,通过dest参数设置实现文件上传之后缓存在服务器端,如果不设置的话文件是不会保存在磁盘中的。此外multer模块还可以设置单文件上传还是多文件上传,上传文件最大数量等[9]。6.1.3用户隐私加密如果直接保存用户帐号密码在数据库中,如果数据库被非法爆破或者侵入,就一定会导致用户隐私泄露,因此需要对重要数据进行加密,而购物网站最重要的数据就是用户帐号密码和银行卡等信息了。这里采用的是express框架下的crypto模块,通过传参的方式构建加密函数:function

md5(data)

{

return

crypto.createHash('md5').update(data).digest('hex');}并非只有这一种加密方法,这只是一个最简单的加密示例,此外还可以截取第x到y位数的字符或者字符串加密再join到原来的加密字符上。而对登录密码的验证,修改密码的验证也是如此,先获取页面上的字符串再通过同样的加密方式加密,再与数据库中的该用户密码进行对比。6.1.4注册重复由于mongodb数据库是异步操作的方式,一般的注册流程是这样的:页面上写入用户名跟密码,与数据库中的数据做对比,如果没有的话同意注册该用户,然后将用户名和密码写入数据库中。但mongodb数据库如果这样做会出现一个问题,当多个用户注册相同用户名的时候,数据库对比是同步执行的,多个用户都不与数据库中数据冲突,于是全都通过注册筛选,全部注入数据库中。所以这里用到了唯一索引值:磁盘上的物理位置的唯一指针,这么理解:同一个地方只能有一个数据,只能一个人站在某一个点上,当第二个人想站在这里的时候就会出现异常,在数据库中的流程理解为:当通过页面上简单的筛选后,用户名和密码直接注入数据库中,一个字符串与之对应有一个唯一索引值(类似于ASCII码),如果数据库中已经有这个用户名,那么就注册失败,返回fail给服务器,服务器返回fail给客户端。代码为:db.users.createIndex({username:1},{unique:true})——在users集合中给username创建唯一索引值。6.1.5重复页面处理购物商城一定会有超级多的页面,比如耐克某一款鞋子的详情页,阿迪达斯鞋子的详情页等等,但页面多不代表代码也要很多,很多都是重复的,如果代码重复,我们需要做的就是封装重构代码,相同的封装起来,不同的传参进去,页面的重复其实也可以“封装重构”,刚开始使用的是腾讯的template模板,但很遗憾的是数据传递出现了问题,只能相同页面传参,如果不同页面的话要么是先跳转以至于跳过了js程序,要么是无法跳转,如果在js写跳转又在跳转页面取不到数据,后面使用的是cookie缓存传参,甚至于session缓存传参,但都很繁琐。最后利用express框架,先写一个ejs页面,最后渲染页面,也就是类似于做了一个模板,然后将参数传递进来,代码示例:router.get('/login',function(req,res,next){res.render('login',{});});6.1.6权限筛选有些页面是需要登录甚至需要权限的,不可能所有页面游客都可以查看。修改密码,个人信息页面等需要登录才能查看,而我的店铺等页面则需要店主权限才能进入,等等情况都需要进行筛选。在页面执行的时候,是有中间函数的,打个比方,登录的时候需要先通过第一个筛选函数:页面上的筛选函数,字符串大小,字符类型,验证码都符合的情况下交给下一个函数处理,此时去数据库对比用户名,对比失败(数据库中没有此用户)则创建输入用户名跟密码到数据库中,然后下一个函数:返回true到页面上,跳转页面,将用户名写到导航栏中。所以我们只需要在js文件最开始的地方创建一个数据存放需要一级权限的页面数组,二级权限页面数组,如果登录的用户符合权限,则交给下一个函数处理,否则提示无权限进入,跳转到首页。代码示例:varexcludeUrls=['/','/register','/login','logout','/captchapng'];//不需要登录的url//这里要进行拦截过滤,有些页面必须登录才能访问app.use(function(req,res,next){if(excludeUrls.indexOf(req.path)!=-1){next();}else{if(req.session.username){//如果有登录,直接放过next();}else{//如果没有登录,重定向到登录res.render('msg',{msg:'您还没登录!',nextPageName:'登录页',nextPageUrl:'/login'});}}});6.1.7验证码刚开始用的是随机产生一个数字,连续产生四个然后拼凑字符串成为image路径的方式生成验证码,四个数字join成一个字符串,获取页面上文本框字符串跟后台字符串做对比。Express本身有封装一个验证码模块叫做captchapng2拿过来用就可以了,代码如下://给浏览输出验证码router.get('/captchapng',function(req,res,next){resp.writeHeader('200',{'Content-Type':'imgae/png'});//解决乱码问题letrand=parseInt(Math.random()*9000+1000);//生成一个四位数随机数1000-9999//生成的验证码要存到session中req.session.validcode=rand;letpng=newcaptchapng(80,30,rand);//width,height,numericcaptcharesp.writeHead(200,{'Content-Type':'image/png'});resp.write(png.getBuffer());resp.end();});router.post('/login',function(req,res,next){varvalidcode=req.body.validcode;varusername=req.body.username;varpassword=req.body.password;//判断验证码if(validcode!=req.session.validcode){res.render('msg',{msg:'登录失败,验证码错误',nextPageName:'登录页面',nextPageUrl:'/login'});return;}6.1.8页面拼凑页面拼凑算是一个很简单也很复杂的功能了,由于ajax异步操作的特性,本着优化系统的心思一开始是使用的ajax导入页面的方式来做页面拼凑。后来遇到诸多问题。传参传不过去,多次传参导致数据冲突,无法在导航条调用内容页面的元素,也就是就算传参过去导航条了内容页面也无法使用,使用了很多种方式最后还是以失败告终,html当中的frameset框架则会导致下拉按钮下的页面被遮挡,不得已使用了ejs当中的include方法伪拼凑页面。利用bootstrap中大量写好的css样式来做页面美工,express框架中的mvc模型,为的是“封装重构”页面,避免代码块冗余。6.2系统优化的建议可以采用csdn云服务器,服务器有专门的提高数据访问速度的工具,能进一步优化系统运行速度。与腾讯等一些公司合作,扩大注册登录渠道,也能取得更好的广告效果。增加一些智能合约,减轻管理员工作负担的同时提高对用户反馈的处理速度。结论本次毕业设计题目是基于html和mongodb的电子产品购物网站,在本次设计中,最大的收获是对一个项目完整的设计和优化。这个项目可以说是在学校中第一个独立完成的大项目。首先要分析系统的需求,有条理的对系统进行设计,比如用户登录注册,首先是对用户名和密码类型和长度的限制,并且对比数据库,那么可以把一部分功能交给客户端去做,用户名和密码的限制可以用dom对象获取变量加以判断然后限制按钮的跳转。把多个线程或者单线程的多个逻辑分配给不同的业务层,配合nodejs的异步非堵塞I/O特性使得系统更高效。要认清楚每一个语言或者数据库的特点,找不出错误的地方极可能是语言特点数据库特点的问题,nodejs底层接口绝大多数是异步操作[10],对数据读写修改会由于异步的原因导致数据读取不到而没有执行下一步函数,此时应该写回调函数或者把数据读写修改改成同步操作。由于mongodb数据库的bson特性,加上关联查询方法,可以在用户数据表里面嵌套购物车json数组、历史记录、浏览记录等,但也由于json数组的特性,比如result[0]是a:1,result[0].a是1,此时取不到a名字,无法直接前面是商品名后面是商品在购物车中的数量。认清楚每一个工具或者语言的优缺点才能尽善尽美的做出好的系统。

参考文献席季季.基于nodejs的web应用系统高并发处理模式的研究与实现[D].北京邮电大学,2018.[2]朱爱华,付曹政,曹钟,李强,杨建伟.基于Node.js框架和MongoDB数据库的物流信息服务系统设计[J].北京建筑大学学报,2018,34(04):41-46.[3]王伶俐,张传国.基于NodeJS+Express框架的轻应用定制平台的设计与实现[J].计算机科学,2017,44(S2):596-599.[4]熊俊雄,陆海洪,周志文,兰伟发,朱师琳,徐元中.基于express的内容发布系统[J].电子世界,2019(11):14-16.[5]李晶.NodeJS——服务器端JavaScript运行环境[J].程序员,2010(12):29.[6]曹文彬,谭新明,刘备,刘传文.基于事件驱动的高性能WebSocket服务器的设计与实现[J].计算机应用与软件,2018,35(01):21-27+91.[7]李兴华.基于WebSocket的移动即时通信系统[D].重庆大学,2013.[8]许会元,何利力.NodeJS的异步非阻塞I/O研究[J].工业控制计算机,2015,28(03):127-129.[9]杨晓婷.基于Node.js的基础框架设计与实现[D].北京邮电大学,2017.[10]黄孝羽.基于NodeJS函数接口描述的正则引擎的设计和实现[D].东南大学,2017.

致谢此毕业设计的最终完成得到了很多人的协助,许明鹤老师是一个很负责任的老师,有问必答,并且很耐心的帮我注意提醒一些我自己没注意到的地方。我的表哥是最大的功臣,项目的优化改进不足都是他帮我过目之后给我建议给我方向,甚至告诉我用什么已学或未学的知识点去改进,扩大了知识面。而我的宿友们对我最大的帮助来自于思维的发散,在一次次聊我们的毕业设计内容中,一次又一次思想碰撞给了我新的火花,丰富了系统内容以及系统美观程度。

HYPERLINK如何选择组装电脑配件

如何选择组装的电脑配件.

第一,选择好CPU平台,就是INTER还是AMD,看你是要配什么样的电脑,高端还是低端的,两个平台都高低的产品。第二,选择主板了,主板的品牌比较多,质量,价格也不一,当你第一步却定了,那么主板也就相应的却定下来了,以INTER为例,只可以选择775接口的主板(早期有478接口的,不推荐),主板的选择主要有两种,一是集成显卡,二是不集成显卡。集成显卡的话,就可以省下显卡的钱,但是对游戏玩家不推荐。那么当然是选择不集成显卡的主板了,而且最好选择一线品牌,如华硕,技嘉等。主板里,还有个蕊片组的选择。关于蕊片组,各个品牌的主板命名有些不一样,主流是INTER965,945,915,VIA的KT890,还有NFORCE4,NFORCE5。等。比较难说清楚。最好是选择INTER的蕊片组,虽然价格会稍高一些。推荐945,技术比较成熟。第三,显卡的选择。显卡主要还是有两类品牌,GEFORCE和ATI,两个品牌有高,中,低的显卡。显卡选择要看你个人喜欢了,预算充足的话,最好是买中,高端的显卡。

第四,就是内存了,内存关系电脑的稳定性。当然是要好一点的。买一线品牌的。现在配电脑,主流是DDR667,DDR800DDR1333第五,显示器的选择,推荐液晶。如何选择硬件组装电脑这是一个老生常谈的问题了,这也是一个让高手们显示自己硬件功底的问题,同时这还是一个让很多新手为之焦头烂额的问题。该怎么配?具体配什么?怎样配才能尽量减小瓶颈?本文就将从内到外,从理论到实践,为朋友们抽丝剥茧一一道来。

一、CPU

作为一台电脑最关键的组成部分,CPU确实起着举足轻重的作用,但体现一台电脑的综合速度,并不是仅仅依靠CPU的,常常看到很多新手们在配电脑的时候,把CPU选的很好,但其他的东西诸如内存、主板、硬盘等都选的不太理想,好像这台电脑速度的快慢就体现在CPU速度的快慢上似的。甚至很多著名的品牌机厂商,都推出过类似“P4+256M内存”的这种跛脚配置。其实对于一般的家用电脑而言,一个真正会配的高手,是不会把大量的钱花在CPU上的。家用电脑,毕竟不是做密集型科学计算用的,它讲求的是多种媒体的配合工作,讲求的是能一边下载文件、一边上网浏览网页、一边听音乐、一边还能打开其他的程序,在这种情况下,提升内存的容量比提升CPU的主频对速度的影响要明显的多。现今的中国家庭用户,很多家长对于电脑一窍不通,他们只听说“奔四”代表着速度快,并不知道整机速度的快慢除了CPU以外,还有很多其他的因素影响着它。但在买电脑的时候,最后做决定并掏钱的人,往往都是这些啥都不懂的家长们,于是就出现了上面的一幕:品牌机厂商为了能有更好的销路、兼容机装机店的销售人员为了能拿到更多的奖金,开始违背良心来配置出这种高主频处理器、低容量内存的跛脚电脑。说严重点,这是属于对消费者的不负责任,是一种商业欺诈行为!同样5000元的配置,高手配出来的赛扬,比新手配出来的P4还要快很多,曾经有一家全球著名的硬件网站在2003年的时候刊登过一篇关于配置家用电脑时各硬件占用总预算百分比的文章,文中很明确的提到了CPU的价钱最好不要超过总预算的10%-15%,我们虽然不能说他肯定完全正确,但至少人家是通过很多调查后得出的结论,有借鉴的理由。反观现在的很多所谓的“低价奔四电脑”、“3999元买P4品牌机”之类的广告,我想说的就是:你花了3999元,只买了一块P4的处理器,其他的什么都没有了!

二、内存

对于配置一台电脑来说,内存是重头戏,容量、速度、类型等等每一项指标都对最终的整机综合速度起着至关重要的影响,尤其是内存的带宽和容量。对于内存带宽而言,很多人都认为400MHz、533MHz前端总线的赛扬四或P4,配单通道的DDR内存就足够了,双通道DDR内存是配合800MHz以上前端总线的P4处理器用的,其实这样就大错特错了,哪怕是最老的赛扬四,都需要双通道的DDR内存才能达到它的带宽!也就是说,你如果选择赛扬四1.8G,必须配合865以上的主板和至少双通道DDR200的内存,才能满足它的带宽要求!稍微计算一下就可以得知:赛扬四1.8G的前端总线是400MHz,它的内存带宽理论值是400MHz×64bit÷8=3.2G/s,但当它装在845系列的主板上时,由于845主板的限制,即使你插上能符合它带宽要求的DDR400内存,也只能运行在DDR266上,这时的内存所能提供的带宽是266MHz×64bit÷8=2.1G/s,比3.2G/s要小很多,即使你通过BIOS里的内存调节选项往上调节一档(也只能调节一档而已),让内存运行在DDR333下,所能提供的带宽也仅仅是333MHz×64bit÷8=2.66G/s,离3.2G/s还是有一定的距离,而内存带宽的降低,能非常明显的降低整机的综合速度,运行任何程序都能明显的感觉出来!所以如果想满足赛扬1.8G处理器的内存带宽要求,你必须要为它配置865以上的主板和双通道的内存才行!P4亦是如此。很多人也许会问:那845系列的主板是配什么处理器的呢?我想回答你的就是:845系列的主板是属于“不能用”的主板,因为处理器永远比主板发展的快,当初Intel造出845系列的芯片组是为了能给当时的赛扬和P4提供一个过渡的平台,不至于让它们成为“没有主板配合”的处理器而已,也是为了能在低端市场分一杯羹,而现今865甚至9xx系列的主板横行的时候,845系列的主板确实是属于“不能用”的主板了,满足不了任何一款处理器的内存带宽,造成性能上的严重低下,试问这种主板你会选择么?即使配台2000多元的超低价电脑,也不要去选择845系列的主板,至少需要865以上的和双通道内存才行,因为内存带宽是一个非常影响系统性能的参数,倘若一味的为了省钱而配置845系列的主板,那就得不偿失了。

内存的容量方面,应每个人对电脑的使用方向不同,容量的要求也是不同的,现在配置的家用电脑,笔者建议:如果不打游戏,或者是打打扫雷、纸牌之类的游戏,平时注重于上网浏览或者是聊天、看电影之类的应用的话,内存容量不应该低于1G;如果是偶尔打打单机游戏或者是网络游戏,内存容量应该选择在2G左右,如果是经常打大型的游戏或是进行HDTV视频编辑等应用,那么4G的内存是必不可少的。

三、主板

一台电脑的稳定性和兼容性,一大部分是看主板的,一款优秀的主板不仅需要拥有上等的用料和优良的做工,还需要拥有合理的走线设计,那些没有技术实力的三、四线主板厂家生产的主板,多数是采用公版走线,而且用料非常差,稳定性不堪一击,这种类型的主板,笔者建议宁愿不买电脑也不要配这种主板,否则以后将会是个淘气的祖宗。对于家庭用户,主板方面一定不能省钱,预算够的话最好能买个一线的主板品牌,如果预算实在不足,二线的主板是底线了,不要再往下选择了,毕竟家用电脑是用来使用的,不是用来整天维修的。再谈到主板的用料,笔者常常看到很多新手在配置主板的时候,貌似老鸟似的说某某品牌的主板好,某某品牌的不好,试问你知道它好在哪里么?不好在哪里么?这个就要看主板的用料了,虽然用料好的主板并不能代表一定是高档主板,但最少能代表它的电气性能出色。举一个很简单的例子吧:有A、B两款主板,A主板的处理器供电滤波电容采用的是日系电容,B主板的处理器供电滤波电容采用的是台系电容,那么基本上可以肯定的是:如果在电源输出电压的波动范围比较大的情况下,A主板就比较能耐得住,而B主板就很容易产生电容鼓包、漏夜等情况。不要小看这小小的电容,笔者从一个开维修店的朋友那里得知,来维修主板的人,有80%的都是这几个小电容损坏,究其原因,就是电源选择的不好,导致了输出电压的不稳定,久而久之最终导致这几个小电容爆浆,并且详细叙述了主板的品牌:“一线厂家的×硕牌主板就很少出现这种情况,但同样为一线厂家的×星牌主板,经常遇到!原因就是前者的大部分主板使用的是日系电容,而后者的大部分主板为了省钱,选用的是台系电容!”厂家的广告不能信,宣传也不能信,看到一个产品的广告之后,你所能相信的唯一一点就是:地球上有这么个产品的存在!然后其他的就统统都不能信了!网上有好多所谓的“评测”文章,都是枪手写的,基本上没有任何参考余地,只能作为一篇小说来读,一款主板的真正性能,只有你自己使用了之后才能知道。厂家为了销量、商家为了利润,他们能把最最垃圾的主板宣传为最顶级的产品,笔者曾经就看到过一款四线品牌的主板厂商,在对其主流主板的广告上说“最优秀的设计、最精湛的工艺、最稳定的性能”……结果一看报价:550元/块……其他的话我也不想多说了,只想问问这家厂商:你这么垃圾的主板都用了三个“最”字,那么华硕的同芯片组主板,售价是你三倍的,应该用什么词语来描述了??中国有一句古话:一分钱一分货,说的非常正确!不要认为价格高的主板就是暴利产品,从市场经济学上说,暴利产品是不会被市场所接受的,之所以他能存活到今天,而且售价依然是这么高,肯定有他的理由,他在做工用料方面肯定比其他品牌的要好很多,成本高所以售价高,在此,笔者奉劝大家一句:买主板千万不要凭侥幸心理,认为自己能花很少的钱买到很好的东西,只有错买的没有错卖的,商家永远都比你精明!主板上面还是老老实实的多花点钱来买个一线产品吧,否则以后有你吃苦的时候!

四、硬盘

现在的电脑,硬盘的速度当之无愧的成为了“第一大瓶颈”,无论你是再高的高手,配电脑的时候也无法消除这个瓶颈的存在,我们只有尽量的减小…再减小……。对于家用电脑的硬盘来说,容量和速度是两个非常重要的参数,容量上而言,笔者建议:如果你的电脑只是上网浏览浏览、偶尔打打小游戏的,那么160G的硬盘是个不错的选择;如果你常常下载软件或电影,那么250G的硬盘是个不错的选择,如果你是个下载狂人,那么400G的硬盘比较适合你;如果你有DV或者是经常编辑大型的视频文件,那么400G×2比较适合你,如果你是个玩HDTV的人,那么恭喜你,400G×4也许你都不够用。对于硬盘容量上的选择,你不能考虑现在是否够用,你应该考虑未来的1年里是否够用,大概的公式是:现在需要的容量×3。也就是说,如果你现在感觉80G的硬盘差不多够用了,那么你就需要买个250G的硬盘。如果你现在感觉120G的硬盘够用了,那么就去买个400G的硬盘吧。硬盘另外的一个参数就是速度,受到内部传输率等诸多因素的限制,一块硬盘的实际传输速度是不可能达到它的接口速度的,现在的并口硬盘基本上都是ATA133了,串口硬盘也都是150了,但民用级硬盘的实际传输速度最快的也还没突破66M/s,所以跟内存相比,硬盘的速度是电脑中最大的瓶颈,那么怎么来减小这个瓶颈呢?于是人们就发明了RAID,就是磁盘阵列(当然RAID不是仅仅为了这个而发明的),用两块一模一样的硬盘来组成RAID0,速度理论上能提高1倍,虽然实际上是不可能达到1倍的,但至少能非常非常明显的感觉到了硬盘速度的提升,笔者建议:如果你买的主板是带有RAID功能的,并且你需要保存的数据不是很重要的话,那么强烈建议你在预算允许的情况下购买两块硬盘来组建RAID0,这将使你能亲身体会到飞机与火车的速度差别!但最好是串口的,如果是并口的话,因为并口走的是PCI总线,由于PCI总线上的设备比较多,所以速度不可能达到比较高的地步,但如果是串口的话,那么硬盘的速度提升将更加明显!

五、显示器

显示器方面,笔者想澄清一个观念:曾经听过非常多的人说液晶显示器保护眼睛,因为没有辐射和闪烁……包括很多业内人士都这么认为的,其实错了,液晶显示器比普通的CRT还要伤眼睛!因为伤眼睛不仅仅是辐射和闪烁,还有对比度、亮度等参数,虽然液晶显示器的辐射和闪烁比CRT要小的多,但它那要命的对比度、那要命的色泽度、还有那大于每平方米300cd的亮度,这些都会对眼睛造成很大的伤害,并且你即使将液晶显示器的亮度和对比度调节到最低,也还是非常的刺眼。德国的一家权威机构做过一项调查:液晶显示器用久了会使人的眼睛感觉到疲倦,甚至头痛等症状,而使用相同时间的CRT显示器,却基本没有这些情况出现。现在的通过TCO03认证的CRT显示器,其实外露的辐射已经相当小了,基本上对人已经没有多大的伤害了,闪烁感也可以通过调节刷新率来降低,笔者实在是搞不懂为什么很多人非要去选择液晶显示器,还非要说液晶显示器不伤眼睛??一个最差的17寸液晶显示器的价格,能买一台不错的、通过TCO03标准的19寸CR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论