大湿教我写程序(2)之走向AV之路
一、大摆庆功宴
上一篇博文《大湿教我写程序(1)之菜单导航篇》中讲到了我撸码到晚上两点多,整出了一个还算是高端大气上档次的demo。半夜回到家里打算着可以好好睡上一个懒觉,到时候直接到客户那边跟老板汇合一起去演示。
早上7点
“谁呀,大晚上的搞什么灰鸡,还让不让人睡了”刚在梦中与女神相会,关键时刻hello motor!的声音不停的响,我拿起电话回了句。
“雷工,今天没办法呀,客户那边单子不小,这单做好了,以后我们有的是合作机会,公司的未来就托付在你身上了。demo要好好做,我在你楼接你,牙也别刷了穿上衣服赶紧下来,咱去公司好好过一遍demo,等项目拿下来了,我们一起去酒店摆庆功宴,好好庆祝一下。快点哈别磨蹭了,给你一分钟。我挂了。”
嘟嘟嘟。。。。
“XX,什么人!别的程序员说自己是IT民工,我TM是IT奴隶!!!”
到了公司看了下demo基本没什么问题,其余无非就是教我些坑人的话,教我怎么忽悠客户。
上午10点
到了客户那边,经过我跟老黄的双簧表演demo竟然顺利通过了。客户那边比较急着上项目,于是让我现场估算一下工时。
“需求分析7天、需求确认3天.....这样一七得七、三七二十一、四七二十八、五一劳动节、六一我过节。。。。我初步估算一下一共需要180个人天数”我说道。
“是的,您这个项目比较复杂,我们要保证质量所以需要这么多人天数也是没办法的,没质量的软件我们宁可不做。”老黄一脸艰难的说。这时候我感觉老黄在我心里的形象非常高大有这样的觉悟,以他的那颗黑得发紫的心和比城墙还厚的脸皮,他绝对可以成为下一个马化腾。
“人天数你们放心,我不会扣你们的,公司这么大不差你们这点钱,工期还是有点长,这个我们要再考虑一下。”对方项目经理。
“原来您担心这点,那我现在就可以告诉您,以我们公司的实力,1个月后交付项目,我从开发部中抽6名骨干来做。保质保量完成任务。”虽然我狠狠地在会议桌下面踩了老黄一脚,可他还是在客户面前表了这样的态。
我们毫无悬念地拿下了这个单子,回家的路上我问老黄:“黄总,我们一共才两个开发的,我算了下跟大雄一起开发都得3个月,你打算要外包么?”
“外包个毛啊,自己会有开发的干嘛把钱给别人赚。大雄那边的项目还没完,这个项目主要还是得你顶着。你千万别跟我说要招人,公司要控制成本,这是我的方针”老黄道。
“这样的话我没法做了,明天我不想上班了”
“年轻人怎么能这样,这点困难就怕了,以后怎么成大事,下月给你加500块工资”
“这不是钱的问题,您每次都这样,我们累的要死,项目无法按时交付客户没命的催,我受够了”
“下月给你加一千五,另外先把报表类的东西做出来,其它功能没出来可以从他们旧系统里拉数据,老板只看报表的,先稳住老板就行”老黄又一脸艰难的说。
“那我尽力吧,黄总,我真心不是因为钱的事跟您闹离职”
“好了,接下来我们要争分夺秒了,你先下到沙县小吃那里给我带份炒面,你也打包回来吃”老黄说完丢下我就先走了
我擦,这TM就是庆功宴,去的原来是沙县大酒店呀!一份炒面也7块钱,钱还没给我呢。。。。
二、走向AV大道
吃完饭我就开工了,报表要先弄,看了下客户那边的需求,然后连到他们的服务器上看了一下,感觉问题不是很大,因为SQL我还是比较熟的,一般变态点的语句也都能写得出来。
经过一下午的整理SQL语句全弄好了,抓取出来的数据也没问题,接下来又要做前台页面了。像什么水晶报表之类的我肯定是想都不想了,要付费的东西用上去了,被那个半桶子水的家伙看到后不但要臭骂一通还得重新来过。
当时demo的界面是这样的:
<script src="/Themes/Scripts/jquery-1.8.2.min.js"></script>
3、声明对图表插件的引用
<script src="../Themes/Scripts/Highcharts/highcharts.js"></script>
<script src="../Themes/Scripts/Highcharts/theme/grid.js"></script>
4 、函数封装一下jquery调用Ajax调用后台处理程序方法。
/* 请求Ajax 带返回值
--------------------------------------------------*/
function getAjax(url, parm, callBack) {
$.ajax({
type: 'post',
dataType: "text",
url: url,
data: parm,
cache: false,
async: false,
success: function (msg) {
callBack(msg);
}
});
5、正式开始AV调用,指定后台处理程序地址,传入参数,将返回值绑定到报表即可,代码比较长这里就不贴出来。
6、在数据没有加载完成时加一个正加加载的小特效,加载完了再隐藏掉。别让用户感觉界面假死
<div id="loading" onclick="Loading(false);">
<img src="../Themes/Images/loading.gif" style="padding-bottom: 4px; vertical-align: middle;" /> 正在处理,请稍待
</div>
运行一下试试,哦耶!没一点问题。
三、将AV事业发扬光大
OK,报表那块的东西基本处理得差不多,客户那边有不少资料是要用Excel导入进去的,经常会一次性导入很多个文件,如果用服务端控件肯定用户体验不好。看来还是得采用AV技术来上传比较好。
“大雄。。。”算了,大湿双眼紧盯屏幕,看来又在研习这门技术更深层次的内功心法了,算了不打扰他了,自己动手吧。
首先我要感谢的是谷沟,google一下发现.net的ashx可以上传文件,这个东西上传文件很方便,单个的文件可以上传,也可以指定一个文件夹上传所有文件。太好了,感谢asmx的妹妹ashx,那么我就依葫芦画瓢按照上一节中的方法来处理上传,只有以下两点不同:
1、Ajax提交
<script type="text/javascript">
function upload(){
var path = document.getElementById("File1").value;
var img = document.getElementById("img1");
if($.trim(path)==""){
alert("请选择要上传的文件或文件夹");
return;
} $("#form1").ajaxSubmit({
success: function (str) {
if(str!=null && str!="undefined"){
if (str == "1") {alert("上传成功");document.getElementById("img1").src="data:images/logo.jpg?"+new Date();/*上传后刷新图片*/}
else if(str=="2"){alert("只能上传Excel格式的文件");}
else if(str=="3"){alert("文件不能大于10M");}
else if(str=="4"){alert("请选择要上传的文件");}
else {alert('操作失败!');}
}
else alert('操作失败!');
},
error: function (error) {alert(error);},
url:'Handler.ashx', /*设置post提交到的页面*/
type: "post", /*设置表单以post方法提交*/
dataType: "text" /*设置返回值类型为文本*/
});
}
</script>
2、服务器端接收到文件以后要进行后续处理。
F5之后,OK,完全没问题,正常接收
“大雄,快来看,快来看,这个导入文件我也是用AV技术解决的,怎么样,还可以吧。”
“不错呀,你这个真的还不错,挺会举一反三的,平时教学视频没白看呀”
“怎么样,离你的技术还差多远,大湿。”
“我哪能跟您比呀,您才是大湿,动手能力这么强,马上要赶上神之手加滕老师了。”
“好了,昨晚上没睡好,今天折腾了一天不跟你瞎扯了,我先回家睡觉。”
“你先滚吧,明天双11,0点的时候我先买买东西。”
不是吧难道又要加班了?这时候老黄又打电话过来了。
“黄总,又加班呀!!你还想不想让我活了!”
“没,你今天好好休息下,我有有个事情交待下。。。”
“啥事您这么急?话都说不圆了,别急,有事您慢慢讲。”
“今天客户给我打了15万首付款,那张卡我开通了网银的,明天双11了,我现在在陪客户吃饭,你赶点紧,现在晚上9点了,我已经把支付宝、网银账号发你QQ上了,你马上乱输几次密码,都给锁上。别让那败家老娘们儿给我花了”
。。。
谨以此文献给像我一样的菜鸟,希望大家能有所启发,大牛勿喷。
http://www.learun.cn 力软官网
http://www.learun.cn:8080 在线demo
如果你觉得喜欢就帮我【推荐】一下吧,你的支持才是我能坚持写完这个系列文章的动力。
大湿教我写程序(2)之走向AV之路的更多相关文章
- 看过《大湿教我写.net通用权限框架(1)之菜单导航篇》之后发生的事(续)——主界面
引言 在UML系列学习中的小插曲:看过<大湿教我写.net通用权限框架(1)之菜单导航篇>之后发生的事 在上篇中只拿登录界面练练手,不把主界面抠出来,实在难受,严重的强迫症啊.之前一直在总 ...
- 第一章-第四题(ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么?软件工程是不是教那些不怎么会写程序的人开发软件? 你怎么看?这个游戏团队, 有很好的软件,但是商业模式和其他软件之外的因素呢?有没有考虑到)--By梁旭晖
引用 http://baike.baidu.com/link?url=z_phkcEO4_HjFG_Lt163dGFAubdb68IbfcfzWscTOrrZ55WbJEQKzyMQ5eMQKyatD ...
- 手把手教你写LKM rookit! 之 第一个lkm程序及模块隐藏(一)
唉,一开始在纠结起个什么名字,感觉名字常常的很装逼,于是起了个这<手把手教你写LKM rookit> 我觉得: 你们觉得:...... 开始之前,我们先来理解一句话:一切的操作都是系统调用 ...
- 手把手教你写Kafka Streams程序
本文从以下四个方面手把手教你写Kafka Streams程序: 一. 设置Maven项目 二. 编写第一个Streams应用程序:Pipe 三. 编写第二个Streams应用程序:Line Split ...
- python 写一个生成大乐透号码的程序
""" 写一个生成大乐透号码的程序 生成随机号码:大乐透分前区号码和后区号码, 前区号码是从01-35中无重复地取5个号码, 后区号码是从01-12中无重复地取2个号码, ...
- 4.“写程序” 这个活动大多数情况下是个人行为。 我们听说的优秀程序员似乎都是单打独斗地完成任务。同学们在大学里也认识一些参加ACM 比赛的编程牛人, 他们写的ACM 比赛的程序是软件么? “写程序” 和 ”做软件“ 有区别么? 请采访这些学生。
ACM的题库的编程都只能算做程序,不能算软件.写程序和做软件区别还是很大的.程序是为实现特定目标或解决特定问题而用计算机语言编写的命令序列的集合.为实现预期目的而进行操作的一系列语句和指令.而软件是程 ...
- [原创]手把手教你写网络爬虫(5):PhantomJS实战
手把手教你写网络爬虫(5) 作者:拓海 摘要:从零开始写爬虫,初学者的速成指南! 封面: 大家好!从今天开始,我要与大家一起打造一个属于我们自己的分布式爬虫平台,同时也会对涉及到的技术进行详细介绍.大 ...
- 网络编程懒人入门(八):手把手教你写基于TCP的Socket长连接
本文原作者:“水晶虾饺”,原文由“玉刚说”写作平台提供写作赞助,原文版权归“玉刚说”微信公众号所有,即时通讯网收录时有改动. 1.引言 好多小白初次接触即时通讯(比如:IM或者消息推送应用)时,总是不 ...
- 专访UI中国认证设计师卤大湿 | 一位UI大师关于UI设计的思考
现如今,设计师可以说是一个自带光环的Title,很多深藏不漏的UI设计师们都在以自己的方式为产品设计做出贡献,卤大湿便是这其中之一. 精分青年卤大湿,这个在UI中国上是张酷酷的鲁迅头像的UI设计师,是 ...
随机推荐
- bzoj4900 [CTSC2017]密钥
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=4900 [题解] 恭喜bzoj达到40页 考场由于傻逼基数排序写挂了而gg. 竟然忘了考试前一 ...
- CentOS erlang安装
1. http://www.erlang.org/下载erlang,解压缩,进入目录,检查环境 alex$ cd otp_src_18. alex$ ./configure ************* ...
- selenium 滚动条操作(JavaScript操作)
前言 一般我们想到的必须使用滚动条的场景是:注册时的法律条文的阅读.判断用户是否阅读完的标准是:滚动条是否拉到页面底部.当然,有时候为使操作更接近用户行为也会使用滚动条,例如用户要操作的元素在页面的第 ...
- Juel Getting Started
Getting Started The JUEL distribution contains the following JAR files: juel-api-2.2.x.jar - contain ...
- hdu 1411(四面体的体积)
校庆神秘建筑 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Subm ...
- [BZOJ1227][SDOI2009]虔诚的墓主人 组合数+树状数组
1227: [SDOI2009]虔诚的墓主人 Time Limit: 5 Sec Memory Limit: 259 MBSubmit: 1433 Solved: 672[Submit][Stat ...
- c#实现Form窗体始终在桌面最前端显示
方法一 //调用API [System.Runtime.InteropServices.DllImport("user32", CharSet = System.Runtime.I ...
- 使用Redis实现高并发分布式序列号生成服务
序列号的构成 为建立良好的数据治理方案,作数据掌握.分析.统计.商业智能等用途,业务数据的编码制定通常都会遵循一定的规则,一般来讲,都会有自己的编码规则和自增序列构成.比如我们常见的身份证号.银行卡号 ...
- Hydra--密码破解的神器
原来不止burpsuit.sqlmap是神器,还有Hydra. 虽久闻大名,却未曾使用,今天偶然用到,发现支持的服务那真是多,ftp.ssh.smtp.imap.http...,而且支持ssl 可以想 ...
- Aras增加新用户
Aras中新增用户,这里特别提醒,用户密码下面的可以登陆必须勾选,如不勾选刚出现不能登陆的情况. 增加用户后,将用户加入至与原同事一样的Identities(例如Sales/All Employees ...