更新笔记历史

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系列之更新历史记录的更多相关文章

  1. Octopus系列之如何让前台的js脚本变得灵活重用

    Octopus系列如何让前台的js脚本变得灵活,重用 方式1:ajax方式 方式2:form表单方式 面向对象的脚本封装 jQuery的封装 做Web开发的少不了前台Ajax的使用, 返回true:f ...

  2. 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的无状态模 ...

  3. Ext JS学习第十六天 事件机制event(一) DotNet进阶系列(持续更新) 第一节:.Net版基于WebSocket的聊天室样例 第十五节:深入理解async和await的作用及各种适用场景和用法 第十五节:深入理解async和await的作用及各种适用场景和用法 前端自动化准备和详细配置(NVM、NPM/CNPM、NodeJs、NRM、WebPack、Gulp/Grunt、G

    code&monkey   Ext JS学习第十六天 事件机制event(一) 此文用来记录学习笔记: 休息了好几天,从今天开始继续保持更新,鞭策自己学习 今天我们来说一说什么是事件,对于事件 ...

  4. Vulnhub系列——持续更新

    vulnhub系列--持续更新 一 · XXE Lab: 1 ​ 使用vmware搭建靶机 ​ 扫描存活主机 ​ 找到目标主机--192.168.1.18 ​ 开始扫描目标端口 ​ 发现只开了一个80 ...

  5. Octopus系列之开发中灵光点收集,先放到这里,后面会整理的

    项目中引用的组件 1.System.Data.SQLite.dll 自行编译 SQLite-1.0.66.0-source 3.5的框架:F:\Code\开源项目\SQLite\1.0.66.0_x8 ...

  6. Octopus系列之各个页面调用示例

    调用首页产品 可选参数如下 New = 1, Hot = 2, Best = 3, Special = 4, Featured = 5, Other = 6 #foreach($item in $oc ...

  7. IT男的”幸福”生活"系列暂停更新通知

    首先谢谢博客园,这里给了我很多快乐.更给了大家一个学习的好地方. 在这几天更新过程中,看到了很多哥们的关注,在这里我谢谢你们,是你们给了我动力,是你们又一次给了我不一样的幸福. 在续5中我已回复了,博 ...

  8. Octopus系列之开发过程各个技术点

    自定义了页面周期 使用唯一的一个VelocityEngine全局的静态实例,优化了小泥鳅blog中每次请求都要创建VelocityEngine实例对象,减少了对象的开销 通过UA判断请求来自的设备,从 ...

  9. Vue 填坑系列(持续更新...)

    1.遇到页面显示不更新,数据已更新情况 vue-cli中: this.$nextTick(function () { this.x=x; })     以js引入vue的网页中: this.$set( ...

随机推荐

  1. JavaScript基于对象(面向对象)<一>类和对象

    javascript中一切皆对象,比如:Array,Date.....这些都是对象.javascript中没有class的定义,function既是定义函数,也可以是定义类.function Obj( ...

  2. jquery+ajax(用ajax.dll)实现无刷新分页

    利用ajax.dll那种方式的无刷新,在这就不说了,新朋友可以看下我的另一片文件http://www.cnblogs.com/dachuang/p/3654632.html 首先,这里用的是jquer ...

  3. Linux命令之乐--awk

    1.脚本参数传值 #/bin/bash awk '"} {if(($1==a)) print $2;}' /etc/hosts 执行结果:

  4. 对SIGQUIT的实验 & Java dump

    写了一个Java程序,sleep 20秒. package com.company; public class Main { public static void main(String[] args ...

  5. intel simd 资料

    http://www.cnblogs.com/zyl910/archive/2012/04/26/md00.html https://software.intel.com/sites/landingp ...

  6. 推荐两篇Unity与Android交互的文章

    http://www.xuanyusong.com/archives/676 里面18,19介绍

  7. java,UDP协议简单实现

    //UDP协议简单实现-----Serverpackage UDP; import java.net.DatagramPacket; import java.net.DatagramSocket; i ...

  8. 在Android上使用Google V8 JS 引擎

    在cantk-runtime中直接使用的webview,通过JAVA扩展接口把Canvas的2d Context的API定向到JNI,通过OpenGL来图形加速,渲染速度大大提高.后来测试发现在大部分 ...

  9. 浅析KMP算法

    浅析KMP算法 KMP算法是一种线性字符串的匹配算法,将主串S与模式串T匹配. 首先朴素算法大家都会,就是直接从S的每一个位置开始,枚举比较,时间效率为O(nm),现在要想到一种化简的方式,使得时间复 ...

  10. 用ildasm/ilasm修改IL代码

    原文地址:http://www.cnblogs.com/dudu/archive/2011/05/17/ildasm_ilasm_il.html 在开发中遇到这样一个场景,需要修改一个dll文件(.N ...