图书商城项目总结(2019.7新总结)

*********************2015-06-09 图书商城项目1*********************

1、微软中如果注明是线程安全的,就证明多线程访问安全(不需要加锁)

2、

前台:就是游客、用户注册登录后能够看到的页面

后台:提供给系统管理者能够看到的页面,而游客、用户看不到的页面。

前端:程序员在进行编程的时候的代码编写,如果是三层构架,就是UI层。

后端:对应前端而言的,编写代码基本上是提供给前端调用,是不需要处理UI的内容.比如:逻辑层。

 

3、jquery中可以使用css属性,对对象进行样式的修改

 

4、使用ajax将表单元素序列化成键值对json,传送给服务器

 

*********************2015-06-09 图书商城项目2*********************

1、表单中的元素无论是否服务端控件,都可以被提交(submit),

2、无刷新上传图片异步jQuery

3、使用jquery的方式,修改标签的某个属性值

 

5、服务器返回图片的路径给客户端,只需要返回图片的服务器绝对路径即可,不用物理路径,客户端会进行解析为http路径

①服务器返回图片绝对路径,会在客户端当前网页的缓存地址中构建:/imageUpload/xxx.jpg文件, 然后客户端获取该图片

②客户端接收服务器,图片路径并显示

 

6、使用前端或客户端插件的时候,可以不将插件的资源文件进行分类,这样比较好管理

7、img标签只有起始标签

8、可以使用hiddenField将服务器数据传送到客户端:

①服务器设置要传送的属性

②写到hidden中

 

9、前台与后台代码混编,只要将后台代码用<%  %>全部包起来,跟正常语句一样,只是前台代码不用包

 

10、iquery的css处理

 

11、①与用户进行交互的控件都选择input控件,如输入文本框、button、CheckBox

②很少使用label,直接写入innerhtml中,③img等控件可以单另使用

④页面表格布局、输入信息等,可以使用table布局

 

12、使用httpWatch或者网页工具进行请求与响应监视

 

13、客户端经常要从服务器获取,并且要验证的数据,而且不会改动的,可以放置在缓存中,以免每次查询数据库

①客户端每次修改密码所需要的服务器数据

②使用system.web.caching.cache进行缓存

 

15、解决高并发,可以使用分布式处理,如使用redis等队列工具,将高并发的事务放置在队列中使用消费者模式进行处理。

 

16、如果repeater绑定的是modelDataSource,那么Eval的是model的属性名称,而不是数据库中字段名称

 

17、常用的服务器端控件①repeater,相当于forche,②listeView自带增删改查编辑,功能强大。

 

18、Eval的第二参数可以设置格式,{0}是占位符:

 

19、repeater会有viewstate,必要时要进行禁用:

 

20、对请求管道中的事件,①可以实现一个继承IhttpHandled的类,然后进行配置,②也可以直接使用Global.asax中的方法来实现:

 

21、如果链接中同时有,href 属性函数和 onclick 事件函数,那到底执行那个呢?

22、aspx的前台页面与后台页面对项目中的资源引用路径是一样的,因为前台页面继承自后台类:

 

23、图片使用img标签,不是image

 

 

 

*********************2015-06-09 图书商城项目4*********************

1、使用前台代码获取后台代码数值的方式:①#或者=  ②如果是如与数据库绑定使用Eval

 

2、页面模板中的占位符被替换的时候,不光是body中的,只要是页面中的都可以,即使是js中的:下图中的$bookId被替换

 

3、将list<modle>转化为json字符串,返回

 

4、split不返回空字符串

 

5、外部访问的属性一定设置成访问器,不能定义成公共字段(记住字段只为类内服务)

①数据库中的字段

②映射的model,可以没有字段,但是一定有属性(公共访问器)

 

6、判断数据库bool类型的值,isForbid=1比较通用

 

6、使用sqlDataReader读取数据的模式:

①在读取数据库一部分少量数据的时候可以使用dataAdapter,可以读取到table中(内存中),

②但是读取大量数据的时候,使用sqlDataReader比较快

 

 

*********************2015-06-09 图书商城项目5*********************

1、数据访问层Dal中服务器数据库的处理(所有逇sql语句放置在该层中),manager 业务层(不会出现sql语句与数据库的访问,

2、Md5对同一个string加密,其结果是一样的,在数据库中存放的密码是经过md加密的,但是用户登录使用的是明文

 

3、html中的UI可以使用第三方插件,如:jqueryUI、EasyJquery进行设计

将下面的div放置到模态对话框

 

4、类型强转

 

5、Eval的书写方式:

①输出方法

②直接输出属性

 

6、js函数返回值什么类型都可,也不需要每个分支都返回值,如果想中断函数执行直接返回false:

 

8、使用jquery的类选择器,结果为数组:

 

9、使用jquery对某类的标签(集合)进行查找、并且遍历:

 

10、使用jquery可按照:①class名、id、标签类型、或者其的混合进行查找

②Name一般只用在form表单提交到服务器时使用

11、使用隐藏域来保存前台页面的全局临时数据比较好

 

12、构建一个表的时候,尽可能将跟该表密切相关的属性列出来,然后在考虑其中某些属性是否要拆分成一个新的表(外键表)

 

13、数据库设计时,如果有公共数据冗余,可以将公共数据抽取作为主表;有变化的部分作为从表(明细表):

 

15、基本上所有的关系型数据库的Sql语句基本相同,

16、建立存储过程

17、将购物车中的总价、商品、单价分别写入到订单主表、订单明细从表中,使用存储过程:

create proc createOrder

//创建过程参数

@address nvarchar(255),--收货人地址

@orderId nvarchar(50),--订单号

@userId int,--用户编号

@totalMoney money output --总金额  //该参数为输出参数

as

begin

  declare @error int  //声明变量

  set @error=0  //对变量赋值

  begin transaction  //开启事务

   ---计算总金额

  select @totalMoney=sum([Count]*UnitPrice)from Cart inner join Books on Cart.BookId=Books.Id where Cart.UserId=@userId  

   set @error=@@error+@error  //@@error为上次sql语句执行错误时,系统的报的错误信息

  --向订单主表中插入数据。

  insert into dbo.Orders(OrderId, OrderDate, UserId, TotalPrice, PostAddress, state) values(@orderId,getdate(),@userId,@totalMoney,@address,0)

set @error=@@error+@error

 --行订单明细表中插入数据

// select @orderId,Cart.BookId,Cart.Count,Books.UnitPrice这样可以批量出入数据

  insert into dbo.OrderBook(OrderID, BookID, Quantity, UnitPrice) select @orderId,Cart.BookId,Cart.Count,Books.UnitPrice from Cart inner join Books on Cart.BookId=Books.Id where Cart.UserId=@userId

  set @error=@@error+@error //每次执行sql后都输出系统错误信息@@error

--删除购物车表中的数据

  delete from Cart where UserId=@userId

  set @error=@@error+@error

  if @error>0  //执行完以上过程后,如果系统错误数大于0,那么就要回滚整个过程!

    begin

              rollback transaction--回滚

    end

  else

     begin

              commit transaction--提交  //否则提交

     end

end

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值