Octopus系列之更新历史记录
更新笔记历史
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。。。
Octopus系列之更新历史记录的更多相关文章
- Octopus系列之如何让前台的js脚本变得灵活重用
Octopus系列如何让前台的js脚本变得灵活,重用 方式1:ajax方式 方式2:form表单方式 面向对象的脚本封装 jQuery的封装 做Web开发的少不了前台Ajax的使用, 返回true:f ...
- ASP.NET MVC深入浅出系列(持续更新) ORM系列之Entity FrameWork详解(持续更新) 第十六节:语法总结(3)(C#6.0和C#7.0新语法) 第三节:深度剖析各类数据结构(Array、List、Queue、Stack)及线程安全问题和yeild关键字 各种通讯连接方式 设计模式篇 第十二节: 总结Quartz.Net几种部署模式(IIS、Exe、服务部署【借
ASP.NET MVC深入浅出系列(持续更新) 一. ASP.NET体系 从事.Net开发以来,最先接触的Web开发框架是Asp.Net WebForm,该框架高度封装,为了隐藏Http的无状态模 ...
- Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G
code&monkey Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...
- Vulnhub系列——持续更新
vulnhub系列--持续更新 一 · XXE Lab: 1 使用vmware搭建靶机 扫描存活主机 找到目标主机--192.168.1.18 开始扫描目标端口 发现只开了一个80 ...
- Octopus系列之开发中灵光点收集,先放到这里,后面会整理的
项目中引用的组件 1.System.Data.SQLite.dll 自行编译 SQLite-1.0.66.0-source 3.5的框架:F:\Code\开源项目\SQLite\1.0.66.0_x8 ...
- Octopus系列之各个页面调用示例
调用首页产品 可选参数如下 New = 1, Hot = 2, Best = 3, Special = 4, Featured = 5, Other = 6 #foreach($item in $oc ...
- IT男的”幸福”生活"系列暂停更新通知
首先谢谢博客园,这里给了我很多快乐.更给了大家一个学习的好地方. 在这几天更新过程中,看到了很多哥们的关注,在这里我谢谢你们,是你们给了我动力,是你们又一次给了我不一样的幸福. 在续5中我已回复了,博 ...
- Octopus系列之开发过程各个技术点
自定义了页面周期 使用唯一的一个VelocityEngine全局的静态实例,优化了小泥鳅blog中每次请求都要创建VelocityEngine实例对象,减少了对象的开销 通过UA判断请求来自的设备,从 ...
- Vue 填坑系列(持续更新...)
1.遇到页面显示不更新,数据已更新情况 vue-cli中: this.$nextTick(function () { this.x=x; }) 以js引入vue的网页中: this.$set( ...
随机推荐
- 《FLASH CC 2015 CANVAS 中文教程》——2、基本的交互(点击、触摸)事件
注::如果你对 FLASH 这个软件操作不够熟悉,建议你可以先看看FLASH动画之类的书. :FLASH CC 在文中直接简称为CC. :以下所以文章中所说的快捷键 如果你按了不起作用,请检查是否有其 ...
- git学习笔记08-分支管理策略-实际上我们应该怎么应用分支
Git用Fast forward模式(快进模式),但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的commit,这样,从分支 ...
- MongoDB 中遇到的一些错误
1.在win平台上,使用ctrl+c关闭mongodb后,使用 mongod --dbpath=D:\mongodb\db --logpath=D:\mongodb\log.txt --port -- ...
- iOS - Swift Array 数组
前言 public struct Array<Element> : CollectionType, MutableCollectionType, _DestructorSafeContai ...
- Connection的使用
package com.cz.test.util.collection; import java.util.ArrayList;import java.util.Collection;import j ...
- [转载] zookeeper 事件通知
ZK事件回调当一个client访问ZK时,client与ZK保持长连接.应用可以通过client的api注册一些callback,当对应的事件发生时,client会执行对应的callback.如果你基 ...
- js-------》(小效果)实现倒计时及时间对象
js实现倒计时及时间对象 JS实现倒计时效果代码如下: 1 <!doctype html> 2 <html> 3 <head> 4 <meta charset ...
- js 高程(三)学习感言(随时更新)
1.读第二遍了,感觉第一遍白读了. 2.现在还处于初学...
- J2EE 第二阶段项目之分析业务
这次的项目为: 两金申报系统.主要是关系的练习,CRUD,统计. 这个项目没有pdf图,只有一本使用手册.(在我们出去工作后,做项目的时候,也可能只有项目需求的资料). 分析:每一张表都有分页,查看 ...
- 接收ET采集器数据页面
<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="u ...