2019独角兽企业重金招聘Python工程师标准>>>

一、泛型通配符:“?”

java泛型中,当某种类型不确定时,可以使用未知类型?来代替,在Java集合框架中,对于参数值是未知类型的容器类,只能读取其中元素,不能向其中添加元素, 因为,其类型是未知,所以编译器无法识别添加元素的类型和容器的类型是否兼容,唯一的例外是NULL。

二、setTimeout与clearTimeout

在HTML DOM方法提供了setTimeout与clearTimeout来进行定时任务和取消任务。总所周知,在使用setTimeout(fucntion(){},timeNumber)后,需要调用clearTimeout()时,需要传入setTimeout()对应的返回值。改返回值是一个int数值,用以标示每一次调用是哪个setTimeout()。

function a(){console.log(111)}pc = setTimeout(a,10000);
31
111
pc = setTimeout(a,10000);
32
pc = setTimeout(a,10000);
33
clearTimeout(32)
undefined
111

如图,在控制台定义了函数a,在clearTimeout()函数中传递对应的int值,便能终止定时任务。在每次刷新界面后,重置返回值,不可否认是一个很low却又快捷、轻便、有效的方法。

三、js函数的默认参数

在网上查了查资料,发现js没有类似于java函数的默认参数设置,但是js提供了一个arguments的变量,用以在函数中储存传进来的参数,因此可以通过判断进行默认参数值设置:

function wireLabelObject(key,display,value){var width = arguments[3] ? arguments[3] : '280px';var height = arguments[4] ? arguments[4] : '150px';var top = arguments[5] ? arguments[5] : 300;var left = arguments[6] ? arguments[6] : 100;var fontSize = arguments[7] ? arguments[7] : '20px';var obj = {'key':key,'display':display,'value':value,'width':width,'height':height,'top':top,'left':left,'fontSize':fontSize}return obj;}

四、mvvm

mvvm模式,即Model-View-ViewModel,代表一种前端数据绑定式的模式。由view<——>view model<——>model,通过view model实现view与model的数据绑定,从而减少代码量。在项目中使用的mvvm框架是vue.js,下例为依照vue.js文档写的样例:

<!DOCTYPE html>
<html lang="en" xmlns:v-on="http://www.w3.org/1999/xhtml" xmlns:v-for="http://www.w3.org/1999/xhtml">
<head><meta charset="UTF-8"><title>Title</title><script src="node_modules/jquery/dist/jquery.min.js"></script><script src="node_modules/vue/dist/vue.min.js"></script>
</head>
<body>
<div id="app"><p>{{message}}</p><input v-model="info" v-on:keyup.enter="add"><ul><li v-for="p in infos"><span>{{p.text}}</span><button v-on:click="remove($index)">X</button></li></ul>
</div><script>var vue = new Vue({el: '#app',data: {info:'',message:'输入信息',infos:[{text:'info 1'}]},methods:{add: function(){this.infos.push({text:this.info.trim()});this.info = '';},remove: function(index){this.infos.splice(index,1);}}})
</script>
</body>
</html>

view层,即:

<div id="app"><p>{{message}}</p><input v-model="info" v-on:keyup.enter="add"><ul><li v-for="p in infos"><span>{{p.text}}</span><button v-on:click="remove($index)">X</button></li></ul>
</div>

model层,即:

data: {info:'',message:'输入信息',infos:[{text:'info 1'}]},

Vue对象则充当了view-model的角色。

参见vue.js文档http://cn.vuejs.org/guide/

五、taffy db

在有些网页上,由于频繁用到表里的数据,并且需要进行不同的查询,因此在页面内访问数据库的次数特别多,有个页面初始化居然需要近10次访问,造成加载时间长达5秒。而且在前台通过手写的查询有一定的局限性,因此搜了搜json的查询工具。虽然json查询的工具比较少,但是也有几个能够满足基本需要的。

1.jsonsql

通过类似于sql语言的查询语句来查询json中的数据。下面是两个官网上的示例:

1)jsonsql.query("select * from json.channel.items order by title desc",json);

2)jsonsql.query("select title,url from json.channel.items where (category=='javascript' || category=='vista') order by title,category asc limit 3",json);

由于jsonsql只支持简单的select语句,因此看起来发展状态与使用情况并不是太好,然而已经满足了项目开发的需要。

2.taffy db

比起jsonsql来说,taffy db似乎要高级许多,支持完整的crub操作,可以满足大部分的需要。

主要特点

  • 很小,只有10K左右
  • 简单,JavaScript的语法
  • 快速
  • 易于集成到任何Web应用
  • 兼容主流的Ajax库,例如:YUI, JQuery, Dojo, Prototype, EXT, etc
  • CRUD 接口 (Create, Read, Update, Delete)
  • 排序
  • 循环
  • 高级查询

官网上给了一些简单的例子,可以入门。但是个人感觉jsonsql似乎看起来舒服一点,,,毕竟sql。。。。

创建数据库:

// Create DB and fill it with records
var friends = TAFFY([{"id":1,"gender":"M","first":"John","last":"Smith","city":"Seattle, WA","status":"Active"},{"id":2,"gender":"F","first":"Kelly","last":"Ruth","city":"Dallas, TX","status":"Active"},{"id":3,"gender":"M","first":"Jeff","last":"Stevenson","city":"Washington, D.C.","status":"Active"},{"id":4,"gender":"F","first":"Jennifer","last":"Gill","city":"Seattle, WA","status":"Active"}
]);

查询:

// Find all the friends in Seattle
friends({city:"Seattle, WA"});// Find John Smith, by ID
friends({id:1});// Find John Smith, by Name
friends({first:"John",last:"Smith"});

修改:

// Move John Smith to Las Vegas
friends({first:"John",last:"Smith"}).update({city:"Las Vegas, NV:"});// Remove Jennifer Gill as a friend
friends({id:4}).remove();// insert a new friend
friends.insert({"id":5,"gender":"F","first":"Jennifer","last":"Gill","city":"Seattle, WA","status":"Active"});

ps:就是不知道前端对数据处理起来的速度咋样,数据量太大还是老老实实去数据库吧。

转载于:https://my.oschina.net/u/2248183/blog/719253

项目开发中的小tips相关推荐

  1. ssh项目同时使用mysql跟sqlserver数据库_MSSQL_如何把sqlserver数据迁移到mysql数据库及需要注意事项,在项目开发中,有时由于项目 - phpStudy...

    如何把sqlserver数据迁移到mysql数据库及需要注意事项 在项目开发中,有时由于项目开始时候使用的数据库是SQL Server,后来把存储的数据库调整为MySQL,所以需要把SQL Serve ...

  2. Silverlight C# 游戏开发:项目开发实例和小技巧索引

    Silverlight C# 游戏开发:项目开发实例和小技巧索引 相比于技术文章而言,本索引中包含的都是独立的项目,争取按照每个独立的项目开发来编写系列,全部为原创,开发过程可能语无伦次,可能相当幼稚 ...

  3. 软件项目开发中的百分之九十效应

    在软件项目管理中,经常遇到这样的情况:进度到百分之九十后开始停滞,要花很长很长时间很大很大代价(甚至超过前百分之九十所花费的工时.工期)才能完成最后的百分之十.我把这种情况叫作:软件项目的百分之九十效 ...

  4. 项目开发中ARM单片机芯片分类及选型

    项目开发中单片机芯片的选型是一件重要而费心的事情 , 如果芯片型号选择得合适 , 单片机应用系统就会得经济 , 工作可靠 ; 如果选择得不合适 , 就会造成经济浪费 , 影响单片机应用系统的正常运行 ...

  5. 面试中常问的你在项目开发中遇到过哪些问题怎么回答?

    一.你在项目开发中遇到过哪些问题? 此问题的回答一般从三个方向入手,一是技术问题,二是解决方案问题,三是甲方或团队配合问题,针对这三个方面的问题回答示例. 一.技术方面: 开发项目过程中遇到问题是难免 ...

  6. 反思:项目开发中的语言沟通与文档沟通

    反思:项目开发中的语言沟通与文档沟通 问题引出:刚进入公司试用期,有导师安排开发实现一些功能模块或者小的应用.毕竟需要在整个产品的框架下添加代码,看了下整个产品近1G的源代码,相当浩瀚.虽然是不需要我 ...

  7. iOS项目开发中Git的使用

    一.Git介绍 Git是一个项目源码管理系统,在多人合作开发过程中是至关重要的.在项目开发中,我们可以通过Git客户端(Github.Tower.Tortoise等)或者通过命令行来使用Git,关于G ...

  8. 【开发规范】go项目开发中的[流程,git,代码,目录,微服务仓库管理,静态检查]

    文章目录 前言 一.有哪些规范我们应该遵循 二.项目开发流程 三.git的代码分支管理 1. 分支管理 2. commit规范 三.go的代码规范 四.go项目目录规范 五.微服务该采用multi-r ...

  9. Android之---项目开发中网络框架的选择

    项目开发中网络框架的选择 Android常用的网路框架: 大多数应用程序基本都需要连接网络,发送一些数据给服务端,或者从服务端获取一些数据.通常在 Android 中进行网络连接一般使用 Scoket ...

最新文章

  1. 日本搞出奇妙充电屋,坐在任意位置都能隔空充电!研究登上Nature子刊
  2. 【前端大概一分钟】css隐藏滚动条同时可以滚动
  3. 小球大作战-搜索优化
  4. 想和高手侃侃而谈C++引用?看这一篇就够了【C++引用】
  5. ssh自动输入密码登录服务器/ssh免输入密码登录/非交互ssh 密码验证
  6. python 日志不会按照日期分割_django实现日志按日期分割
  7. python if语句 for语句 while语句
  8. python支持按指定字符串分割成数组_python – 如何切割numpy数组字符串的每个元素?...
  9. opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度
  10. 3d页游开发_大翅膀等于页游风?天谕手游扭转印象,阿云嘎同款黑翅膀最有排面...
  11. linux那些内存可以释放,Linux释放内存
  12. java addmonth_JAVA:int month = n.get(Calendar.MONTH)+1;为何要加1?
  13. HTML静态网页作业-餐饮美食网页(HTML+CSS+JavaScript)
  14. visual studio 2019 代码历史记录 本地版本控制 AnkhSvn Local History 教程
  15. Ffmpeg 视频教程 向视频中添加文字
  16. 有益视力的食疗方法(转载)
  17. 婴幼儿体重在线计算机,【婴儿体重计算器标准_婴儿体重计算器标准专题】- 天鹅到家...
  18. 1099: PIPI的油田
  19. 【纯净版windows系统】U盘启动制作图文教程
  20. unity 如何制作成网页游戏版本

热门文章

  1. 阿里大鱼 php 短信接口,dedecms使用阿里大鱼短信接口进行短信发送
  2. c语言 system(pause)为什么报错,c语言-指针-分配内存和赋值需要注意的
  3. Oracle 11g图文下载安装教程(一步一图)
  4. 基于神经网络的物体识别方法2020[计算机视觉]
  5. 阀门厂家是这样批量管理vps的
  6. 中国医用口罩市场前瞻及投资策略建议报告2022-2028年
  7. Qt由入门到放弃-QDate、QTime、QDateTime的相关函数
  8. ffmpeg 打包TS介绍
  9. 最新最全GS游享天龙八部SF环境架设命令及配置详解
  10. 逻辑运算符简介, 逻辑与,逻辑或,逻辑非和逻辑运算符里的短路运算规则