JS
文章平均质量分 71
cwzhsi
这个作者很懒,什么都没留下…
展开
-
高中物理学运动公式实现js动画
js动画原创 2016-08-14 21:34:34 · 5536 阅读 · 1 评论 -
MVC vs. MVP vs. MVVM
1 简介 英文原文:MVC vs. MVP vs. MVVM 三者的目的都是分离关注,使得UI更容易变换(从Winform变为Webform),使得UI更容易进行单元测试。 2 MVC/MVP 2.1 MVC 1、View接受用户的交互请求 2、View将请求转交给Controller 3、Controller操作转载 2016-03-22 13:58:46 · 989 阅读 · 0 评论 -
数据结构与算法javascript描述(六)集合
集合(Set)是一种包含不同元素的数据结构。集合中的元素称为成员。集合的两个最重要的特性是:首先,集合中的成员是无序的;其次,集合中不允许相同成员存在。当你想要创建一个数据结构,用来保存一些独一无二的元素时,比如一段文本中用到的单词,集合就变的非常有用。集合的定义:(1)不包含任何成员的集合称为空集,全集则是包含一切可能成员的集合。(2)如果两个集合的成员完全相同,则称两个集合相等。原创 2016-03-10 17:07:11 · 745 阅读 · 0 评论 -
数据结构与算法Javascript描述(五)循环链表
循环链表和单向链表相似,节点类型都是一样的。唯一的区别是,在创建循环链表时,让其头节点的next属性指向它本身,即 head.next = head;如果你希望可以从后向前遍历链表,但是又不想付出额外代价来创建一个双向链表,那么就需要使用循环链表。从循环链表的尾节点向后移动,就等于从后向前遍历链表。修改构造函数如下:function LList() { this.head =原创 2016-03-10 16:50:30 · 611 阅读 · 0 评论 -
数据结构与算法Javascript描述(四)双向链表
尽管从链表的头节点遍历到尾节点很简单,但反过来,从后向前遍历则没那么简单。通过给Node 对象增加一个属性,该属性存储指向前驱节点的链接,这样就容易多了。此时向链表插入一个节点需要更多的工作,我们需要指出该节点正确的前驱和后继。但是在从链表中删除节点时,效率提高了,不需要再查找待删除节点的前驱节点了。 function Node(element) { this.element =原创 2016-03-10 16:38:40 · 1366 阅读 · 0 评论 -
数据结构与算法Javascript描述(三)链表
数组不总是组织数据的最佳数据结构,因为数组的长度是固定的,所以当数组已被数据填满时,要再加入新的元素就会非常困难。在数组中,添加和删除元素也很麻烦,因为需要将数组中的其他元素向前或向后平移,以反映数组刚刚进行了添加和删除操作。然而,JavaScript 的数组并不存在上述问题,因为使用split() 方法不需要再访问数组中的其他元素了。JavaScript中的数组的主要问题是,它们被实现成了对象,原创 2016-03-10 16:27:31 · 588 阅读 · 0 评论 -
数据结构与算法Javascript描述(二)队列
特点:先进先出Queue类 function Queue() { this.dataSource = []; this.enqueue = enqueue; this.dequeue = dequeue; this.front = front; this.back = back; this.empty = empty; this.toString原创 2016-03-10 15:54:49 · 442 阅读 · 0 评论 -
数据结构与算法Javascript描述(一)栈
栈的特点: 后入先出。Stack类: function Stack() { this.dataSource = []; this.top = 0; this.push = push; this.pop = pop; this.peek = peek; this.clear = clear; this.length = length原创 2016-03-10 15:34:45 · 549 阅读 · 0 评论 -
改变opacity实现图片轮播
这里实现原理我就不详细述说了,主要是通过改变图片的opacity,利用fadeIn和fadeOut来实现过渡效果,使切换不会显得很突兀。但是我在这里遇到了一个问题,让我纠结了一段时间。问题是,我发现页面初始化的时候首屏切换并没有过渡效果,仅仅是直接切换了。我想了很久,以为是我的index的初始值不对,但发现根本不是这个问题。最后,终于发现,原来是我的样式的问题,我将所有的图片都设置为displ原创 2016-02-22 14:33:47 · 2704 阅读 · 0 评论 -
产品详情页配送送信息联动的实现逻辑
功能图如下:需要实现选择运送国家时,相应的运送方式随着改变,同时运送价格也改变后台返回的部分数据如下:{ "jsonrpc":"2.0", "id":null, "result":{ "delivery_info":{ "1":[//对应的country id { // co原创 2016-01-13 08:38:45 · 665 阅读 · 0 评论 -
HighCharts源码学习---扩展函数wrap和扩展对象 extendClass
Highcharts.wrap在原函数的基础上扩展原函数 /** * Wrap a method with extended functionality, preserving the original function * @param {Object} obj The context object that the method belongs to * @p原创 2015-12-27 14:24:25 · 1198 阅读 · 0 评论 -
使用Chrome DevTools的Timeline和Profiles提高Web应用程序的性能
英文原文:Improving Web App Performance With the Chrome DevTools Timeline and Profiles我们都希望创建高性能的Web应用程序。由于我们的应用程序变得越来越复杂,我们可能想要支持丰富的画面以及理想的60帧/秒,这能保证我们的应用程序响应灵敏且生动流畅。知道如何衡量和提高性转载 2016-03-22 14:58:34 · 800 阅读 · 0 评论 -
Object新方法总结
Object总共添加以下几种新方法:Object.keys()Object.getOwnPropertyNames();Object.getPrototypeOf();Object.defineProperty();Object.defineProperties();Object.getOwnPropertyDescriptor();Object.create();Object.原创 2016-03-24 14:27:25 · 1111 阅读 · 0 评论 -
中断或取消 Promise 链
PromisePromise 已经成为了 JavaScript 管理异步操作的重要工具之一. 然而, 有的时候还是会很头痛:Promise // 等价于 `Promise.resolve(undefined).then`. .then(() => { // 开始. }) .then(() => { if (wantToBr转载 2016-04-12 22:16:24 · 18264 阅读 · 0 评论 -
给数字每三位加一个逗号分隔符的两种方法
function formatNum(num) { var STEP = 3; var DELIMITER = ','; var str = '' + num; var arr = str.split(''); var len = arr.length; for(var i = len - STEP; i > 0; i -= STEP) { arr.splic原创 2016-08-25 12:58:26 · 14513 阅读 · 3 评论 -
HTML5 安全问题解析
Html5安全问题解析转载 2016-08-28 16:29:20 · 1200 阅读 · 0 评论 -
canvas实现擦除动画
原理总结为就是在移动设备上将某张图片擦掉显示另一张图片,利用canvas来实现。如果是用户手动擦除,则需要监听touchmove,touchend等事件,并计算相应的坐标,利用canvas的clearRect或rect 画弧线或画线来实现。但是这会造成在androd手机上存在卡顿的现象。canvas有个globalCompositeOperation属性,这个属性的默认值是source-over原创 2016-07-16 10:38:52 · 2080 阅读 · 1 评论 -
微信jssdk总结
微信jssdk总结原创 2016-07-16 09:41:44 · 2234 阅读 · 0 评论 -
webpack&gulp集成简介
gulp webpack转载 2016-07-03 14:23:27 · 1228 阅读 · 0 评论 -
《深入浅出Node.js》迷你书笔记
nodejs转载 2016-07-02 10:13:23 · 1139 阅读 · 0 评论 -
userAgent判断客户端类型
根据userAgent判断客户端类型微信判断 function is_weixin(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/MicroMessenger/i)=="micromessenger") { return true; } else { return原创 2016-06-10 10:22:17 · 3481 阅读 · 1 评论 -
前端构建工具gulp入门教程
本文假设你之前没有用过任何任务脚本(task runner)和命令行工具,一步步教你上手Gulp。不要怕,它其实很简单,我会分为五步向你介绍gulp并帮助你完成一些惊人的事情。那就直接开始吧。第一步:安装Node首先,最基本也最重要的是,我们需要搭建node环境。访问http://nodejs.org,然后点击大大的绿色的install按钮,下载完成后直接运行程序,就一切准备就绪。转载 2016-06-05 14:55:47 · 752 阅读 · 0 评论 -
微信长按识别二维码bug整理
微信长按识别二维码问题搜集与整理最近在折腾一个手机端页面长按识别二维码的问题。发现长按二维码时在ios和android手机上识别不是那么灵敏。下面整理下我对该问题的总结。原创 2016-06-05 11:33:44 · 23725 阅读 · 0 评论 -
Javascript实现树结构
树节点属性 Node data:节点值 parent :指向节点的父节点 children:指向节点的孩子节点Tree 属性与方法 _root :树的根节点 traverseDF(callback) :深度遍历 traverseBF(callback):广度遍历树的实现树节点定义: function Nod原创 2016-04-23 23:02:20 · 5227 阅读 · 0 评论 -
搜索框组件
最近封装了一个search bar的组件,主要用到了Qweb的template在相关组件中来引入,相关的代码如下:search_bar_template.xml :原创 2016-01-11 09:10:33 · 1641 阅读 · 0 评论 -
购物车实现逻辑
购物车页面如下:购物车表cart_line主要存储了如下的几个字段(还包括一些其它的字段) id count :产品的数量 product_product_id :产品id product_hot_item_id : res_partner_id:用户id1. 点击加入购物车时,向后台发请求,后台根据前台传递的参数从数据库对应的表中读取相应的信息,然后 插入到ca原创 2015-12-25 16:22:02 · 17008 阅读 · 2 评论 -
关于form表单button事件教训
在form中我自定义了一个button,然后在button上增加了点击事件。html代码大致如下: 下载图片原创 2015-12-09 11:41:27 · 5151 阅读 · 0 评论 -
js获取屏幕(设备)宽高
script language="javascript">var h = "";h += " 网页可见区域宽:"+ document.body.clientWidth+"\n";h += " 网页可见区域高:"+ document.body.clientHeight+"\n";h += " 网页可见区域宽:"+ document.body.offsetWidth +" (包括边线和滚动条的转载 2015-07-20 19:44:24 · 9153 阅读 · 0 评论 -
js时间戳与日期格式之间的转换
将时间戳转换为日期格式var date = new Date(时间戳);获取一个时间对象。下面是获取时间日期的方法下面是获取时间日期的方法。date.getFullYear();//获取完整的年份(4位,1970)date.getMonth();//获取月份(0-11,0代表1月,用的时候记得加上1)date.getDate();//获取日(1-31)date.getTime();//获原创 2015-08-24 09:08:28 · 5061 阅读 · 0 评论 -
CSS3+JS 实现超炫的散列画廊特效
下面来介绍下我按照慕课网上的视频讲解实现的照片墙效果图。首先看下最终实现的效果。效果包括如下:(1)当点击某张图片时,该图片移到中间区域并放大显示。当图片被点击时正反面切换显示。(2)某张图片被点击时,所有的图片的位置被随机重排(3)某个控制按钮被点击时,对应的图片显示到正中间,控制按钮进行相应的样式切换。当连续点击某个控制按钮时,图片伴随着按钮的点击进行正反面切换。原创 2015-06-15 20:47:44 · 3777 阅读 · 1 评论 -
常用http状态码
http常用状态码1XX 请求已接收,继续处理2XX 请求已成功接收并处理掉了3XX 重定向4XX 客户端错误,如请求有语法错误等5XX 服务器端错误200 ok400 1、语义有误,当前请求无法被服务器理解。除非进行修改,否则客户端不应该重复提交这个请求。2、请求参数有误401 请求没有经过授权,需要用户验证原创 2015-07-05 14:35:59 · 577 阅读 · 0 评论 -
同一个页面中定义多个HighCharts的option方法与Jquery.extend()的用法
如果要在一个页面中利用Highcharts同时展示几个类似的图,他们的option选项很多都是相同的,那么该如何来定义这些option呢?显然,如果为每个图都定义一个option,便会有大量的代码重复,这中方式明显不可行。开始的时候我想着通过赋值的方式,比如定义一个defaultOption,然后将其分别赋值给每个图对应的option,如下: var option1 = defaultOp原创 2015-06-30 22:18:10 · 2570 阅读 · 0 评论 -
Javascript中call(),apply(),bind()的区别
call(thisObj,arg1,arg2...)、apply(thisObj,[arg1,arg2...])。这两个方法是每个函数原型对象上包含的方法。call(thisObj,arg1,arg2...)和apply(thisObj,[arg1,arg2...])作用都是一样的,作用都是改变当前使用该方法的对象中的this的指向,指向调用方法中的thisObj。两者的区别是原创 2015-05-21 18:38:27 · 517 阅读 · 0 评论 -
文件上传到服务器并获取文件中的数据
之前我已经实现了文件上传,但是最近进行数据分析时,我需要用到文件中的数据,所以我得先将文件上传到服务器,然后再从服务器上的文件中请求数据。起初,关于文件上传到服务器,这一步我也折腾了很久,主要是不知道将文件上传到哪里。我最开始是在配置文件中设置了一个绝对路径:将文件上传到工程的webapp目录下picUrl=E:\\workspace\\Login\\src\\main\\webapp原创 2015-05-04 22:03:01 · 12621 阅读 · 2 评论 -
SpringMVC从数据库中读取图片显示到JSP页面上
摸索了一个多星期,终于解决了展示瀑布流照片墙的问题,我一直在思考照片放在哪里,前后想了很多方案。最开始是想把照片放在本地(我的E盘中),而数据库中只存照片的名字,但是这种方案遇到了瓶颈,我不知道img标签的src路径怎么写,不能直接写我本地的路径,在网上看了很多,说是要把图片放到服务器下。但是这样我又遇到了一个问题(问题真是频繁啊),因为我创建的是maven工程,之前把maven工程部署到自己配置原创 2015-02-02 21:46:49 · 35890 阅读 · 5 评论 -
SpringMVC从本地磁盘读取图片显示到JSP页面上
上一篇博客是从数据库中读取图片的二进制信息流然后显示到JSP页面上,下面是将图片存储到我的本地磁盘E中,然后在数据库中只存图片的名字将磁盘的路径写到配置文件中,从配置文件中将地址读取出来,图片显示的流程与前一篇博客的一样,只不过图片存储的地方不一样。下面来展示我的实现流程.(1)数据库中只保存图片的id和名字,我用的是oracle数据库,id是自增的,至于如何建表实现id自增等,我原创 2015-02-03 13:44:12 · 21638 阅读 · 3 评论 -
SSM将后台获取的数据转换成json格式传递到前台页面
1、后台从数据库中获取数据,传递到response中这一步折腾了我一整天,不知道是因为没有传递到response中还是其他的原因,在前台获取的data,使用alert(data)输出的一直为空值或null有两种方式可以实现这一步。一是利用注解@ResponseBody,二是利用PrintWriter。最终我是通过@ResponseBody成功完成了这一步,而不知道为什么利用PrintWri原创 2015-01-29 22:46:53 · 32512 阅读 · 0 评论 -
模拟淘宝侧边服务模块鼠标悬停效果的三种实现方式总结
淘宝侧边服务模块图如下: 当我们把鼠标移到充话费这个模块上时,上面的图标会有一个快速的向上移动然后又回到原来位置的过程。 仔细观察后,可以将这个动画过程分解为三步:图片向上移出并消失:这一步主要是靠改变top属性的值和opacity来实现。图片将top设置为一个固定值,这个值将会作为为下一步动画执行时的初始值:这一步只需改变top值。图片回归到原来的位置并显示:改变top和opacit原创 2015-08-30 20:12:18 · 1641 阅读 · 0 评论 -
关于js的总结
1、如何选出所有选中的checkboxvar $selDes = $('.result-table tbody').find("input:checked");2、删除单元格中的某一行:这里是如果某一行中的input被选中,则将该行删除。$selected.each(function (i,item) { $(this).closest('tr').remov原创 2015-07-23 10:30:27 · 444 阅读 · 0 评论 -
javascript组件化
作为一名前端工程师,写组件的能力至关重要。虽然javascript经常被人嘲笑是个小玩具,但是在一代代大牛的前仆后继的努力下,渐渐的也摸索了一套组件的编写方式。下面我们来谈谈,在现有的知识体系下,如何很好的写组件。比如我们要实现这样一个组件,就是一个输入框里面字数的计数。这个应该是个很简单的需求。我们来看看,下面的各种写法。为了更清楚的演示,下面全部使用jQuery作为基础转载 2015-09-03 21:36:25 · 1283 阅读 · 0 评论