更新笔记历史
2015.2.3
更新了产品价格的计算方法 --采用了通用化的一个处理【支持各个国家货币】
更新产品价格,增加两组价格:一组用来进行前台的展示:一组用来进行后台的计算
更新了产品分类页面的导航链接 --已经实现了4级分类的导航链接实现【后面将会参考兰亭集势的导航,实现分类下拉功能】【备注:可以支持无限级别】
更新了产品详情页面的导航链接 --很轻松就实现了,在产品对象中封装一个Category对象就可以了
更新了产品详情页面的图片详细图展示信息 --【在没有配置远程图片地址的情况下 将自动默认读取本机文件夹下Photo中的图片信息】
更新分页Cookie和货币Cookie --【统一管理在Ockey里面】
更新了货币,加入了货币列表 --用于前台展示使用
更新了Oct调用助手并将数据加入到全局的调用中 --为页面前台的调用提供最大程度的灵活性
更新将产品选项的展示属性 --同时去除掉OptionType该表,将字段直接写入到Option里面去
更新将产品主图信息加入到产品的详细的字段中去 --已经实现了,主要是为了在放大镜的时候使用这个东西
2015.3.3
更新了产品多选属性的数据库 --产品的多选属性采用json的方式进行描述【源于一个网友的启发】
开始编写购物车部分
2015.3.4
测试价格 更新部分通过
2015.3.7
更新购物车中的价格计算展示部分 --【不应该在计算的时候 乘以汇率了】
更新展示购物车 可以实现根据不同的参数加载不同的HTML模板【这一次的更新有很大意义:为后面实现ajax加载开创了一个很好的思路】
2015.3.8
更新了IE11中ajax调用失败的bug:禁止客户端进行缓存
Context.Response.CacheControl = "no-cache";
Context.Response.AppendHeader("Pragma", "No-Cache");
更新了购物车的ajax调用方式【可以调用购物车的各种展示版本,min版本或者其他的版本】
2015.3.9
更新产品售价为0时的bug return ""; 判断是否有小数点,在Staic_FormatPrice函数里面
2015.3.13
提出Widget的概念,升级代码Login,Register,ShoppingCart代码,并实现对应的Widget版本,使各个Widget可以独立使用【组件化】
增加表单的ajax提交功能
2015.3.14
更换数据SQlite版本;
更新计算分类Path的函数,使用SQLite事务的方式,提升了效率;
更新价格计算的方法,当遇到整数时,SQLite中没有小数点,
新增了SQLite版本的分页算法,初步测试通过【后续还要测试】
专门编写测试SQLite相关的函数;
去掉了一些不兼容的SQL语法;
合并Cart和member到一个数据库中;【后续还要考虑分离,并发问题】
读写分离数据库思路
2015.3.19
更新图片的文件夹的生成选项:
主文件夹/_s;
主文件夹/_m;
主文件夹/_b;
2015.3.20
修复页面请求中的异常请求bug
描述:在访问详情页面的时候,从fiddler中总是看到一个请求在访问首页,后来发现原来这个请求在Css中
background的URL属性中导致的,将其注销之后解决了这个问题
问题出在CSS中出现的异常请求:在文件cloud-zoom.js中同时也给我们很好的提示 在css中添加代码链接【比如做统计】
<div class='mousetrap' style='background-image:url(\".\");
2015.3.21
新增插入订单的方法
遇到jQuery和json.js不兼容的问题,解决方式是不在使用json.js而是采用JSON浏览器内置的对象,将表单序列serializeArray的数据转为json字符串
2015.3.22
继续完善订单的处理逻辑
开始进入会员中心选项页面
2015.3.31
完善物流方式和付款方式的
完善订单提交功能
发现内存飙升很快,正想办法解决【缓存方案已经加入】
追踪页面的查询SQL语句
2015.04.06
哈哈,最近这几天 一直在更新程序
规范了语言包的变量定义
规范了模板结构的命名
更新了价格的计算方法,应该是3.0的版本了
规范提取了TagFiled一些字段
规范了一些静态的变量,剔除一下些没有使用的变量
规范了状态码的使用
增加了优惠码的功能,用户只需要输入一次优惠码,就可以了,后面的再次更新购物车时将自动使用优惠码
小技巧的总结
不要使用数据库的自增字段,比如如果你使用SQLite数据库,自增字段的数值在C#中是Int64的,小数在C#中是double类型的
如果你使用时间类型的话,一定要设置默认值,即使该字段在后面不怎么使用?为什么呢?如果你设置的时间默认是null,
那么在C#中读取到DataTable时将会提示,“SQLite 查询时异常:该字符串未被识别为有效的 DateTime 错误”
所以保险起见,建议都设置成默认的 Create datetime NOT NULL DEFAULT current_timestamp;
同时插入时间数据时:记得ToString("S")
更新了所有的时间类型:为默认的时间
2015.04.25
最近更新了很多的bug,时间可能有点不对
运费异常bug:每次刷新checkou页面的时候,运费总是成倍的增加
我将系统中的物流和支付的都进行了缓存,将少对数据库的连接
但是物流中的运费是要通过货币对象进行实时计算的,正常的思路是,第一次加载所有的物流--缓存,后面每次使用时,取出--修改,然后返回
之所以运费总是成倍的增加,是因为我每次从缓存中读取对象然后修改,缓存中的对象已经是我上一次修改过的对象了,所以在原来的基础上
运费计算成本的增加。应该是内存中的对象不变,每次拷贝一份出来修改,不对象内存缓存造成修改。我尝试使用Clone() 和Array CopyTo
方法都失败了,后来使用了 new构造函数,重新构造一份物流数组对象,问题得到解决
更新页面增加区分页面的类型PageName
目的:使不同的页面加载各自不同的 css和js,从而实现html_header_1.html代码片段的公用
通过区分不用的页面 来实现不同页面 js的加载 区分请求的页面类型即可
加载顺序如下
1.加载公共CSS
2.根据页面加载自定义Css
3.加载公共js
4.根据页面加载自定义Css
还有一种加载顺序
直接判断页面 然后一次性加载该页面所有的CSS和js,NV引擎是支持|| 等逻辑运算符号的
后续loadding。。。