上一篇文章写了 jQuery整体架构,学习 jQuery 源码整体架构,打造属于自己的 js 类库
前几次介绍node的ejs后台模板进行数据渲染们今天简单介绍一下咱们前端的模板引擎underscore的数据渲染!
underscore.js一直听说都是一个很经典的库,很适合新手入门,所以历经小半年断断续续的学习,总算是把它敲完了。然后又过了一段时间到了现在,回过头来,打算自己再总结一番,写个源码解析并综合所学到的写下具体用法。 这里是我学习underscore的网站: http://www.qdfuns.com/house/17398/note/class/id/bb6dc3cabae6651b94f69bbd562ff370/page/2.html https://github.com/hanzichi/underscore-analysis http://yalishizhude.github.io/ 以及官方文档: http://www.css88.com/doc/underscore/docs/underscore.html http://www.css88.com/doc/underscore/ 真的很感谢以上大神们的帮助! underscore.js里面的函数分集合(Collections)、数组(Arrays)、函数(Functions)、对象(Objects)、实用功能(Utility)和链式语法(Chaining)这几部分组成,我也是按照每部分去解析的。 然后,也是抱着巩固一下知识的心态写得自我总结,并希望能帮到你。 水平有限,有错误也希望大家能够指出,共同交流,一起进步。
项目开发过程中,PM说系统只要在一个特定的浏览器中运行就好,但是在其他的浏览器中不能出现逻辑的错误,所以在开发过程中,前端和后台选择是Chrome浏览器,没有仔细测试Firefox和IE。但是昨天PM反映了一个bug,是浏览器兼容性bug,在Chrome浏览器下工作正常,但是在IE浏览器不报错,但是逻辑是不对的。剔除复杂的业务逻辑,代码精简如下: <html> <head> <meta charset="utf-8"/> <script type="
Backbone.js是一款JavaScript MVC应用框架,强制依赖于一个实用型js库underscore.js,非强制依赖于jquery;其主要组件有模型,视图,集合,路由;与后台的交互主要是通过Restful JSON 进行数据传输;
值为 true 时,加载器不会删除动态插入的 script 标签。插件也可以根据 debug 配置,来决策 log 等信息的输出。
https://www.lodashjs.com/docs/lodash.throttle
二分查找关键在于首先要保证要查找的元素是(有序的, 数组)!! 二分查找比平常的按照顺序的方式查找效率更高(不用对去全部的元素进行遍历), 二分查找是选取一个中间值一分为二, 对中间值跟要查找的元素比对来决定向左或者向右查找, 如果当前值小于查找元素, 则向右查找, 当前值大于或者等于查找元素, 则向左查找。 直到条件不满足 => 返回
《JavaScript Dom编程艺术》 《JavaScript面向对象编程指南(基础)》 《JavaScript高级程序设计》 《高性能JavaScript》 《学习JavaScript数据结构和算法》 《javascript函数式编程》 《JavaScript模式 》 《你不知道的JavaScript-上》 《JavaScript设计模式》 《JavaScript设计模式与开发实践》 《你不知道的JavaScript-下》
web前端开发人员经常会用到一些现成的js库(框架)。框架的使用增加了代码的模块化和可复用性,目前主流的js框架有很多,各有侧重,我们通常只会用到其中一小部分子功能,这里总结了2020年11个热门JavaScript 库。
** 最新内容请查看这里** 工具库 javascript底层工具库underscore.js 时间操作库moment 发布订阅 Arbiter.js ---- 以下均依赖jquery 幻灯 wowslider 幻灯切换时各种很炫的效果 cycle2 普通的幻灯 浏览图片 fancybox 弹出查看图片,视屏等等 demo yoxview 弹出查看图片,图片尺寸缩放很自然 图片墙 wookmark 加载资源 imagesLoaded 选取的图片都加载好后执行回调
工具类 方便操作对象,数组等的工具库 underscore.js lo-dash 与underscore.js的api基本一致。与underscore比其优势是,效率高;可自定义构建 Sugar 在原生对象上增加一些工具方法 functional.js 提够了一些Curry的支持 bacon.js 函数式编程,cool streamjs 用流的方式来对数组,对象进行系列操作 异步流程控制 发布订阅 eventproxy 朴灵出品 Arbiter.js q Promise风格的 Asyn
英文 | https://blog.bitsrc.io/5-string-manipulation-libraries-for-javascript-9ca5da8b4eb8
注:文章中有例子无法在微信里面展示,最好看原文。 以前写过一篇文章《“节流函数”提高性能》,里面讲到用函数“节流”来减少执行次数(不影响体验的情况下),其实实现的代码并没有问题,但是第二个方法的函数名有问题。前几天看到一篇文章,我的公众号里也分享了《一次发现underscore源码bug的经历以及对学术界拿来主义的思考》具体文章详见。 文中讲了大家对throttle和debounce存在误解,同时提到了《高程3》中实现节流方法存在一些问题,为了更好的理解这两个概念,搜了很多相关文章,详见文章底部。 thro
最近花了一周的时间,复习了HTML、CSS、原生JS,并学习了Node.js、CoffeeScript.js、MongoDB,入了下门。 因为准备在Rocket.chat 上做二次开发,所以先下载和安装了Rochet.chat 的环境。由于Rocket.chat在Mac环境下下载和运行非常简单,所以相关的文章非常少,但是还是有一些坑,会让我们怀疑是不是没这么简单,这里记录下Rocket.chat 的下载和运行过程。
gulp 是一个前端构建工具,它能通过自动执行常见任务,比如编译预处理 CSS ,压缩 JavaScript 和刷新浏览器,来改进网站开发的过程,从而使开发更加快速高效。
要学习NodeJs,必须有一定的JavaScript基础,理解事件模型,了解JavaScript的语法和特性,理解JavaScript面向对象编程
注:教程请参见这里(本文有很多内容都是从这里翻译的),官方网站在这里;综合例子参见这里。
Web前端目前现有的UI框架:Element、Bootstrap、JqueryUi、Foundation、Semantic UI、Pure、UIkit Web前端目前现有的JS框架:JQuery、Zepto、VueJS、AngularJS、ReactJS、backbone 、ember
一. 结构拆分 小型项目 通过子路由实现拆分分层,父级控制器控制共享模块,提供公共能力,子级分管自己的模块,父子级之间通过消息机制进行通讯。 中型项目 通过组合视图实现模块划分,组合视图共享同一个
如果我们想把某个东西转换成一个对象,我们需要传递具有这两个要求的东西:键和值。 满足这些要求的参数有两种类型:
1.js-sequence-diagrams的作用 将简单的文本行绘制成手绘风(或是简单的直线条)的流程图。优点是不需要复杂的数据结构。 ---- 这次做一个数据可视化的网站,我和后端最后一个要攻克的问题是把dataset=[[{"228056": {"2219889": 2013}}, {"108833": {"2059058": 2013}}, {"249854": {"286000": 1997}}, "99"],[{"228056": {"694932": 2004}}, {"32830": {"4
collection是model对象的一个有序的集合,概念理解起来十分简单,在通过几个例子来看一下,会觉得更简单。
语言无关 MySQL 21分钟MySQL入门教程 MySQL索引背后的数据结构及算法原理 NoSQL Disque 使用教程 Neo4j .rb 中文資源 Neo4j 简体中文手册 v1.8 Redis 命令参考 Redis 设计与实现 The Little MongoDB Book The Little Redis Book 带有详细注释的 Redis 2.6 代码 带有详细注释的 Redis 3.0 代码 PostgreSQL PostgreSQL 8.2.3 中文文档 Postgre
设备某时间段的历史轨迹可能不是时间连续的,比如9点到12点的历史轨迹。9点到10点在线,10点到11点离线,11点到12点开始在线,10点到11点位置可能已经变化,只不过没有上传保存而已。这时候我们需要将9点到12点的历史轨迹,使用10点到11点离线时间段切分为9点到10点,11点到12点两个连续时间段,否则地图上的轨迹会出现飞跳现象(从一个位置突跳到另一个比较远的位置)
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。 我采用的是一个非常流行的库require.js。 一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。 <script src="1.js"></script> <script src="2.js"></scrip
最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。
这个系列的第一部分和第二部分,介绍了Javascript模块原型和理论概念,今天介绍如何将它们用于实战。 我采用的是一个非常流行的库require.js。 一、为什么要用require.js? 最早的
前端时间为移动游戏做一个网页活动需求(9宫格的刮奖),遇到一个很诡异的问题:Android端OK,就是在Ios设备上,点击非第一块区域,显示却是第一块区域被刮开咯,查看后端返回数据缺失OK的【前端采用backbone写法,遍历返回数据用的是underscore.js中的each】。经过一番查证,原来如此。 参考水木社区这里的叙述,知晓原来这个属于:IOS 8 Safari JIT bug 影响 jQuery 和 underscore,致使: $.each/.each,看到 .length 后,会把一个 ob
最近在读《你不知道的 JavaScript 中卷》,不会像上卷那样通篇仔细阅读一章一章的写博客了,因为我没那么多精力了。我每天花一点时间去写一些简单且篇幅不长的博客,这样在地铁或在电梯里花一分钟就可以读完。
Backbone的view是用来显示你的model中的数据到页面的,同时它也可用来监听DOM上的事件然后做出响应。 先要给出一个页面的大体代码,下面的所有试验代码都要放到这里面:
简介 accounting.js 是一个非常小的JavaScript方法库用于对数字,金额和货币进行格式化。并提供可选的Excel风格列渲染。它没有依赖任何JS框架。货币符号等可以按需求进行定制。 代码内容及下载地址 accounting.js代码如下: /*! * accounting.js v0.3.2 * Copyright 2011, Joss Crowcroft * * Freely distributable under the MIT license. * Portions of a
经常有网友问说为啥你的代码不能执行,如果你是完全copy我的代码,那基本上不会出错,我的代码都是能正常运行之后才会放上来的。至于很多人不能运行的原因我猜测只是大家只是把我的js部分代码拿走,没有看完整的上下文,我之前的代码没有注意版本问题,很多都是基于backbone0.3.x写的。如果你用了最新的版本那可能有些部分会出错,毕竟backbone也会不断的改进修复之前的一些问题。
答:因为有了模块,我们就可以更方便地使用别人的代码,想要什么功能,就加载什么模块。 但是,这样做有一个前提,那就是大家必须以同样的方式编写模块,否则你有你的写法,我有我的写法,岂不是乱了套!
本篇介绍整个程序最神奇的地方,通过在html页面中分组使用data标签来配置modbus协议中各部分字节对应的业务含义以及数据类型,前端和后台使用统一的代码来完成其他业务读写功能。
前言 前后端分离已经是业界所共识的一种开发/部署模式了。所谓的前后端分离,并不是传统行业中的按部门划分,一部分人纯做前端(HTML/CSS/JavaScript/Flex),另一部分人纯做后端,因为这种方式是不工作的:比如很多团队采取了后端的模板技术(JSP, FreeMarker, ERB等等),前端的开发和调试需要一个后台Web容器的支持,从而无法做到真正的分离(更不用提在部署的时候,由于动态内容和静态内容混在一起,当设计动态静态分流的时候,处理起来非常麻烦)。关于前后端开发的另一个讨论可以参考这里。
前言 前后端分离已经是业界所共识的一种开发/部署模式了。所谓的前后端分离,并不是传统行业中的按部门划分,一部分人纯做前端(HTML/CSS/JavaScript/Flex),另一部分人纯做后端,因为这种方式是不工作的:比如很多团队采取了后端的模板技术(JSP, FreeMarker, ERB等等),前端的开发和调试需要一个后台Web容器的支持,从而无法做到真正的分离(更不用提在部署的时候,由于动态内容和静态内容混在一起,当设计动态静态分流的时候,处理起来非常麻烦)。关于前后端开发的另一个讨论可以参考
模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统。参见阮一峰老师的文章 module-loader 。
模块化的开发方式可以提高代码复用率,方便进行代码的管理。通常一个文件就是一个模块,有自己的作用域,只向外暴露特定的变量和函数。目前流行的js模块化规范有CommonJS、AMD、CMD以及ES6的模块系统。参见阮一峰老师的文章 module-loader[1] 。
耗时函数如果在短时间内被频繁调用,如果不做合适的处理,会导致浏览器卡死(无响应),严重影响用户体验。
之前就说过要读一下关于underscore.js的源码, 我就想先从某个函数开始读, 正好在github文章中(这里的文章我会在最后放上地址)提到了underscore中关于如何比较两个元素的是否相同, 我看完之后觉得很好玩。那么对于如何判断两个元素是否是相同呢?那么在什么程度上才算是相同, 举个例子: 1与1是相等的(当然他们前提是类型是一样的)那么1和 new Number(1)也应该相等。 underscore中有这么一个函数_.isEqual对没错, 就是这个。接下来我会以自己的知识来解释下, 这个函数的涉及的知识点。 如果有解释的不好的点, 请大家给我留言我一定改正。话不多说直接开始
尝试过很多Windows搭建静态网页博客的方法,都是失败告终。试了几次Jekyll,这一次终于成功了。想把一些坑路分享一下。
比如说吃饭。吃饭说明规定,五个小时吃一次。吃了一次饭,小狗蹦蹦哒哒地玩了五个小时。五个小时一到, 小狗再回来吃饭。依次类推,每五小时回来吃一次饭。
事件模块Backbone.Events在Backbone中占有十分重要的位置,其他模块Model,Collection,View所有事件模块都依赖它。通过继承Events的方法来实现事件的管理,可以说,它是Backbone的核心组成部分。 此外,事件模块的所有方法都挂在了全局的Backbone上,如果你的代码中需要用到自定义事件(实现观察者模式),可以直接使用它。 一、Events API 1.0之前只提供了三个基本方法 on/once/off/trigger,1.0开始增加了几个实用方法 listenTo
云函数产品文档:https://cloud.tencent.com/product/scf
上面的两个问题解决后能大大提升用户体验 解决它们就用到了throttle和debounce
年初突然有了个想法,前端也做了几年了,但是很多知识还很零散,应该系统的把知识归纳起来,于是给自己制定了一个计划,决定花大半年的时间整理一下大前端的知识,把他们都写成文章。这个计划包括页面布局,JavaScript,计算机网络,Vue.js,React.js,Node.js,设计模式,架构,工程化,数据结构和算法,实战项目。 所谓学习的三个阶段:学一遍,做一遍,讲一遍。这个计划就是讲一遍,同时在讲的过程中,对自己的知识进行查漏补缺。 本计划所有文章都托管在GitHub上:github.com/dennis-jian… 下面是已经写作完成的文章列表,标题前加了推荐!!的都是点赞还不错的文章。
本期,我们继续学习 BackboneJs 的一个新的模块—— Collection 。
在该项目路径下,我们独立安装gulp:npm install gulp 。此时会生成一个 node_modules 文件夹和一个 package-lock.json 文件,如下图:
领取专属 10元无门槛券
手把手带您无忧上云