当前位置: 首页 > 编程日记 > 正文

项目开发过程中的收获与思考

2013年7月,我正式毕业了,到公司入职,也就正式成为了一名菜鸟程序员。到今天,2014年1月3日,目前主要的工作是公司一个项目中的一个功能模块,到我进入项目组算起,已经过了四个月了。因此,想写点东西记录一下自己项目开发期间遇到的问题以及在项目中的收获。

一、问题与解决

1.关于javascript方法中的Date.parse()方法

模块开发过程中,涉及了许多时间的比较,因此采用Date.parse()方法来进行两个时间的比较。在系统里采用的时间格式形如“2013-08-24 10:28”。最初使用Date.parse()方法时,由于习惯了在chrome浏览器下面进行开发,因此时间的比较采用Date.parse()达到了预期的效果。之后,移交测试,测试人员却发现在IE浏览器下面时间的比较却不起作用。测试人员的提出,第一反应就是IE浏览器对于Date.parse()函数的支持除了问题。上网查找了一下Date.parse()方法,在W3School上面找到下面的说明:

同时谷歌了一下Date.parse()方法在IE下调用的问题,网上的资料说是必须将时间中的日期转化为形如“2013/08/24 10:28”这样的形式,因此自己通过一步一步的调试,解决了    Date.parse()方法在IE下面调用的问题。

总结:使用Date.parse()方法时,如果项目需要在IE浏览器中运行的话,时间格式最好形如“2013/08/24 10:28”(主要是日期格式中需要以/作为分隔符,日期中的年月份的排序应该是没有强  制要求的),由于我自己的项目中格式限定的问题,我的解决方法如下代码所示:

var datetime = "2012-11-11 11:11";

datetime = datetime.replace("-","/").replace("-","/");

使用这样的方式,获得的datetime的值为"2012/11/11 11:11"。

2.javascript中的json操作

这是一个比较简单的知识点,我只是写下来记录一下,方便自己以后可以查看。

var temp_json = {"aaa":1,"bbb":2,"ccc":3};

console.log(temp_json.aaa);//输出1

console.log(temp_json.bbb);//输出2

console.log(temp_json.ccc);//输出3

var temp_key = "aaa";

console.log(temp_json[temp_key]);//输出1,即相当于temp_json.aaa的操作。

3.Jquery 使用$.post方法的收获

在项目的开发中,在将前台的数据传递到后台时,使用的方法就是Jquery的$.post方法。在开发的期间,使用$.post()方法遇到的问题主要有:

①调用$.post()方法时最好按照Jquery的规范格式调用,$.post()方法的规范格式为:$.post(url,[data],[callback],[type]),实际上,关于data参数可以不传递,callback函数可以没有操作,只是一个空函数,但是关于type,最好还是将其设置为$.post规定的可以返回的某一类类型。在我的项目中,同一的返回时JSON类型的数据。在项目初期,由于没有设置返回类型,前台获取不到后台操作处理之后返回的结果,因此关于type,最好就是将其设置为某个返回类型。

②在项目开发中,由于post方法是异步操作的,所以当我刚刚开始使用这个方法时,并没有意识到这个问题,只是将其当做一个普通的函数调用,因此将一些需要post方法返回的数据结果的操作语句写在了post方法之后,而不是写在post方法的callback函数中,因此导致系统出现了逾期不到的bug。根据我在项目开发中的经验来说,当我们进行post方法操作之后,最好将相关的数据操作写进post的callback函数操作中,通过后台返回的数据可以更加精准的对前台页面的组件或者数据进行控制与操作。

 二、总结:

      其实在项目的开发过程中还遇到了其他的形形色色的问题,可惜当时没有开博客,也没有第一时间记下来,印象比较深刻的就是前面提及的几个问题,可能看官们会觉得比较浅显,但是没关系,只是对自己在项目开发中的收获的总结,希望自己记下这些知识点,以后方便查看罢了。几个月的工作下来,最深刻的的体会就是在项目开发过程中要如何的规范自己的代码,编码之前进行思考,编码期间进行修改。不要想着说编码之后再进行优化,因为很多时候,当没有迫切的需求修改时,你可能没有动力去优化你的代码了。编码的过程中记得反思,记得思考,我觉得这就有助于优化代码了。当然,这只是我个人的见解。

PS:这篇记录1月3日写的,一直躺在草稿箱里,今天才敢发布出去,惭愧惭愧!!!

转载于:https://www.cnblogs.com/GaryLichee/p/3503692.html

相关文章:

【仿汽车之家】价格区间选择控件

仿照汽车之家iOS客户端“找车”栏目的价格区间选择控件,最终实现效果如下: 一、界面实现 *根据屏幕大小以及刻度的大小,宏定义需要用到的一些值 #define SCREENW [UIScreen mainScreen].bounds.size.width #define SCREENH [UIScreen mainScr…

Apache服务器部署(2)

签名CA证书 环境:server1:172.25.1.1 重置虚拟机 挂载yum源 [rootserver1 ~]# yum install mod_ssl -y //下载ssl模块 [rootserver1 ~]# yum install crypto-utils -y //安装加密软件 [rootserver1 ~]# genkey …

ASCII、Unicode、GBK和UTF-8字符编码的区别联系

一直对编码这块晕晕乎乎,今天终于看到一篇写的很清楚也很风趣的文章,转过来mark一下。 很久很久以前,有一群人,他们决定用8个可以开合的晶体管来组合成不同的状态,以表示世界上的万物。他们看到8个开关状态是好的&…

【iOS】快速集成轮播控件

自己写的一个轮播控件,初始化后只要实现两个数据源方法,几行代码就能快速集成,支持本地图片和网络图片,支持点击事件,可定制播放速度、指示器颜色/位置、默认加载图等,效果: 1.下载地址&#xf…

Hibernate中get方法和load方法的区别

一、get和load方法都是根据id去获得对应数据的,但是获得机制不同:如果使用get方法,hibernate会去确认该id对应的数据是否存在,它首先会去session中去查询(session缓存其实就hibernate的一级缓存),如果没有,…

DNS高速缓存

DNS相关资料: 1.什么是DNS DNS(Domain Name System域名系统) 是互联网上存储域名和ip映射关系的一个分布式数据库,它负责把域名转换成ip地址,或ip地址转换为域名。DNS运行于TCP/UDP的53端口上。 2.什么是高速…

将时间改为显示:几天前,几小时前,或者几分钟前

(原博客地址:http://blog.csdn.net/kenhins/article/details/38010811) 方法一: 个人做法是保存时间戳,然后在前端用jq插件做转换,比如 smart-time-ago ----------------------------------------------- 方…

支持placeholder和自适配高度的TextView控件

一.应用于项目的效果如下: 二.使用方法: 1.导入JXTextView.h头文件 2.初始化,并添加到view中: JXTextView *textView [[JXTextView alloc] initWithFrame:CGRectMake(10, 10, 200, 30)];textView.placeholder "请输入内容";tex…

ZOJ 3735 dp

http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode3735 好久没做DP题了,一开始没理解题目里的C(M,3)是干什么,原来就是组合,C M 取3,就等于n*(n-1)*(n-2)/6;题目里还有…

haproxy实现高可用及负载均衡

Haproxy简介: Haproxy是一个使用c语言编写的自由开发源代码软件,它提供高可用性、负载均衡、以及基于http和tcp的应用程序代理。Haproxy特别使用于那些负载特别大的web站点。Haproxy运行在当前的硬件上,完全可以支持数以万计的并发连接&#…

Apache转发到Tomcat

#vi /etc/httpd/conf/httpd.conf 添加下面配置 NameVirtualHost *:80 <VirtualHost *:80>ProxyPreserveHost OnServerName www.域名.comProxyPass / http://www.域名.com:8080/system/ErrorLog logs/error_logCustomLog logs/access_log common</VirtualHost> 作者…

.net基础问题

string sqlstr "select BranchCode,BranchName from t_sys_Branch where Jglx_DataDm{0} and IsVisible1"; sqlstr string.Format(sqlstr, departType); 上述代码运行之后 sqlstr"select BranchCode,BranchName from t_sys_Branch where Jglx_DataDmdepartTyp…

【iOS】NSDate分类,获得中国农历

1.说明&#xff1a; 参考网上代码写的一个分类&#xff0c;只需一句代码就可得到NSDate对象所对应的中国农历、星期。 2.使用方法&#xff1a; &#xff08;1&#xff09;导入分类头文件&#xff1a; #import "NSDateChineseDate.h"&#xff08;2&#xff09;NSDat…

LVS_NAT实现负载均衡

简介&#xff1a; 基于NAT机制实现。当用户请求到达director之后&#xff0c;director将请求报文的目标地址(即VIP)改成选定的realserver地址&#xff0c;同时将报文的目标端口也改成选定的realserver的相应端口&#xff0c;最后将报文请求发送到指定的realserver&#xff1b;…

自定义Push和Pop过渡动画

一、效果和源码 本文介绍如何实现一个NavigationController的自定义Push和Pop过渡动画&#xff0c;运行效果如下&#xff1a; 源码&#xff1a;https://github.com/dolacmeng/TransitionDemo 或http://download.csdn.net/detail/dolacmeng/9572384二、准备工作 首先&#xff0…

centos 安装 mysql 5.7

一&#xff0c;wget http://dev.mysql.com/get/mysql57-community-release-el6-8.noarch.rpm 二&#xff0c;yum localinstall mysql57-community-release-el6-8.noarch.rpm 三&#xff0c;yum install mysql-server 四&#xff0c;mysqld --initialize --usermysql 五&#xf…

c语言:婚礼上的谎言

/* 三对新人参加婚礼&#xff0c;三位新郎A,B,C,三位新娘X,Y,Z。 有人想知道谁与谁结婚&#xff0c;于是就问他们&#xff1a; A说他将和X结婚&#xff1b; X说他的未婚夫是C&#xff1b; C说他将和Z结婚。 这人时候知道他们都在说谎。编程求谁与谁结婚&#xff01; */ /* 思路…

redis主从复制、高可用和集群

redis简介&#xff1a; redis是一个key-value存储系统.和Memcached类似&#xff0c;它支持存储的value类型相对更多&#xff0c;包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hashs&#xff08;哈希类型&#xff09;;这些数据类型都支持push/pop、…

对学习编译原理的看法

我认为编译原理这本书是一门与代码做斗争的课程&#xff0c;学习编译原理能够追寻程序设计语言的本质&#xff0c;了解计算机各种语言编译的原理。学习了编译原理能够更加深入的了解计算机各种高级语言使用的原理&#xff0c;能使自己更加容易更加好的学习好程序语言&#xff0…

iOS提示气泡,带动画

1.效果如图&#xff1a; 从项目中抠出来的&#xff0c;做了简单的封装。 2.用法&#xff1a; //顶部提示HYNoticeView *noticeTop [[HYNoticeView alloc] initWithFrame:CGRectMake(50, 66, 250, 40) text:"这里可以查询全城婚礼人的档期哦&#xff01;" position:…

GIt/Github常用命令

1&#xff09;git init:初始化本地仓库 2&#xff09;创建文件&#xff1a;touch read.txt 3&#xff09;当操作本地的文件时&#xff0c;使用常用的命令&#xff0c;如&#xff08;mv&#xff0c;ls。。&#xff09;就可以操作&#xff0c;当操作暂存区的文件时需要在命令前家…

python练习题(python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数” 等)

实验环境&#xff1a;python2.7 题目1&#xff1a;python之“求一个数的阶乘并求结果中从后向前数第一个不为0(零)的数”程序&#xff1a; import math def factorial(n): #定义一个函数&#xff0c;返回一个数的阶乘 if n0: return 1 else: sumn*factorial(n-…

【动画1】UIView动画

讲一下动画。将分为以下5篇博客。 一&#xff09;UIView动画 二&#xff09;Layer动画 三&#xff09;3D动画 四&#xff09;转场动画 五&#xff09;第三方动画框架 相关代码&#xff1a;https://github.com/dolacmeng/AnimationDemo 参考资料&#xff1a;iOS Animation…

【python】解压文件

参考&#xff1a;http://essen.iteye.com/blog/1941489 tarfile模块 具体使用方法&#xff1a; https://docs.python.org/2/library/tarfile.html 例子&#xff1a;一次性解压所有文件 import tarfilet tarfile.open("abc.tgz", "r:gz")t.extractall(path…

JS设计模式——3.封装与信息隐藏

封装、信息隐藏与接口的关系 信息隐藏是目的&#xff0c;封装是手段。 接口提供了一份记载着可供公共访问的方法的契约。它定义了两个对象间可以具有的关系。只要接口不变&#xff0c;这个关系的双方都是可以替换的。 一个理想的软件系统应该为所有类定义接口。 创建对象的基本…

nginx源码编译、负载均衡及模块的扩展

1、nginx源码编译 实验环境&#xff1a; iptables和selinux关闭 redhat6.5 nginx&#xff1a;test1: 172.25.1.11 [roottest1 ~]# ls nginx-1.14.0.tar.gz [roottest1 ~]# tar zxf nginx-1.14.0.tar.gz [roottest1 ~]# useradd -s /sbin/nologin nginx [roottest1 ~]# i…

LinkedHashMap and LinkedHashSet

LinkedHashMap实现了Map接口&#xff0c;是HashMap的直接子类&#xff0c;它同时满足HashMap和linked list的某些特性。可将LinkedHashMap看作采用linked list增强的HashMap。 LinkedHashMap在HashMap的基础上&#xff0c;采用双向链表&#xff08;doubly-linked list&#xff…

Windows Phone开发(19):三维透视效果

Windows Phone开发&#xff08;19&#xff09;&#xff1a;三维透视效果 原文:Windows Phone开发&#xff08;19&#xff09;&#xff1a;三维透视效果 三维效果也可以叫透视效果&#xff0c;所以&#xff0c;我干脆叫三维透视效果。理论知识少讲&#xff0c;直接用例开场吧&am…

【动画2】CALayer动画

一&#xff09;UIView动画 二&#xff09;CoreAnimation动画 前言&#xff1a;上一篇已经介绍了UIKit给我们封装好的UIView动画的使用&#xff0c;UIKit动画是建立在CoreAnimation动画之上的&#xff0c;CoreAnimation是直接作用于CALayer上而非UIView。一、CoreAnimation动画…

nginx+tomcat+memcache实现负载均衡、session共享

实验架构图&#xff1a; Table of Contents 1、配置tomcat 2、安装memcache 3、查看tomcat和memcache是否配置好 4、nginx实现负载均衡&#xff1a; 5、客户端进行测试&#xff1a; 6、验证结论&#xff1a; 7、总结&#xff1a; 实验环境&#xff1a; linux redhat6.…