FED

©FrontEndDev.org
2015 - 2024
web@2.22.0 api@2.20.0
iframe 跨域通信实现其高度自适应解决方案
7/20/2015, 11:55:48 PM
访问
1736
·
评论
2
大多数应用平台中会通过iframe的方式插入跨站的应用。大多数时候基本上能满足需求,但是如果遇到一些比较特殊的应用,他们的高度并不是固定的,会随着应用内容而变化。虽然会有滚动条的出现,但是这样从某种程度上会影响到页面的美观。于是乎,有没有一种方案可以让iframe的高度随着iframe内容而变化呢?通过javascript获取iframe的内容高度。设置iframe的告诉和内容高度相同。...
javascript 文字大小自动适应文本框 (文字大小自动调整)
7/20/2015, 11:50:36 PM
访问
3103
·
评论
0
在进行类似微博墙之类的展示页面中,经常会遇到这样的需求:在固定大小的区域放入字数不定的文字,但是要求字体可以自动改变大小来自动填充这些区域。如下所示:遇到这种情况怎么办呢?...
Window.postMessage() HTML5 跨域解决方案
7/20/2015, 11:47:27 PM
访问
4064
·
评论
1
又是倒霉的跨域TT,有多少人死在了“说出你知道的跨域解决方案,越多越好?”这个面试问题上。今天和大家说说,HTML5提供的一个跨域解决方案,Window.postMessage,它足够易学好用,会让你眼前一亮。但是往往大多数情况下,都不会让人一直笑下去,俗话说道高一尺魔高一丈,这个方法同样也会被HTTP的一些协议所限制着,比如X-Frame-Options:SAMEORIGIN,不过好在大多数情况下,情况不至于这么糟糕。下面进入正题:...
JavaScript 对象转换之toString、valueOf
7/20/2015, 11:43:36 PM
访问
1602
·
评论
1
开始这个话题之前,我们先看一下下面的几个例子:结果有时候会让我大吃一惊,这是为什么呢?今天就和大家讨论一下JavaScript的对象转换。先让我们了解一下JavasScript转换的“原始类型(primitivevalue)”:...
Nodejs实现可训练的中文分词实践
7/20/2015, 11:38:13 PM
访问
1666
·
评论
0
前段时间在研究TF-IDF、杰卡德相似系数计算文本的相似度的时候(目前我的博客中部分文章底部的“猜你喜欢”推荐的文章就是用这种算法计算出来的),用到了中文分词的一些东西,由于当时精力有限,直接用了python的“结巴分词”来实现。恰巧听说老东家最近出了个算法大赛,题目就是就是对小说《三体》进行中文分词!闲下来简单的动手写了一个Node版的算法,100行代码,虽然还是很初级的,但是还是想写些东西“纪念”一下。...
javascript 设计模式7——单例模式
7/11/2015, 1:20:03 PM
javascript 设计模式
访问
1481
·
评论
0
单例模式的意思是只需要实例化某个类一次,它的方法也比较简单,通过判断某个类是否已经被实例化了,再返回该值。可以通过各种方法来实现单例模式,下面我们采取以下这种实现方式:通过以上代码,我们简单地实现了该模式。在实际情况中,我们可能会需要创建一个组件,这个组件是唯一一个,比如遮盖背景。在这样的情况下采用单例模式是非常明智的选择。...
javascript 设计模式6——外观模式
7/11/2015, 1:18:25 PM
javascript 设计模式
访问
1109
·
评论
1
外观模式是为外部提供简单的接口一种方式,由于模块内部方法庞杂,不能一一对外公开,那么我们需要一个统一的和简单的对外方法(API)来调用这些内在的函数。这时候我们可以用到外观模式:在module中,所有的私有方法都不需要公开,我们只是暴露了一个f方法,作为桥接的接口,f里面会执行调用各个内部方法。我们不需要关系_q、_p的执行内容,只需要关心f这个公开的方法。在这里,f就是作为一个简单的api来访问这些方法的。...
javascript 设计模式5——观察者模式
7/11/2015, 1:16:18 PM
javascript 设计模式
访问
1725
·
评论
4
观察者模式在设计模式中被重点提到,因为它应用的场景非常多,而且在模块化设计当中扮演着非常重要的角色。MVC模式中最底层的就是观察者模式,当下流行的javascript框架backbone就是很好地运用该模式的框架之一。观察者模式为我们提供了一些思路,在处理模块或者组件的之间的关系的时候,为了使它们之间的耦合度降低,我们可以采用这种模式思维来编写代码。简单的讲,观察模式的基本原理就是当一个目标需要告诉观察者发生了什么事情的时候,它会向观察者广播一个通知。下面我们来简单的代码阐述一下该模式。...
javascript 设计模式4——工厂模式
7/11/2015, 1:13:36 PM
javascript 设计模式
访问
1682
·
评论
0
所谓的工厂模式,顾名思义就是成批量地生产模式。它的核心作用也是和现实中的工厂一样利用重复的代码最大化地产生效益。在javascript中,它常常用来生产许许多多相同的实例对象,在代码上做到最大的利用。比如现在有需求是项目中需要创建若干的组件,这些组件分门别类,但是又同属于某些类别下。这个时候我们不需要直接使用new运算符来单个创建,通过简单的代码封装,可以实现创建不同的组件实例。下面我们取简单的例子,创建不同的物种实例。...
javascript 设计模式3——模块模式
7/11/2015, 1:09:32 PM
javascript 设计模式
访问
1156
·
评论
0
在一些大的项目中经常使用到模块,在这里,我们将了解一下什么是模块模式。模块模式最简单的方法大家一定会用过,如下所示:这样一个对象的直接量其实就已经是可以表示一个模块的定义了。但是这里会有些问题:a对象里面的b和c属性是公有的,也就是说我们可以在外面任意改变其值。而模块化设计要求的是我们尽可能的实现模块中的值和方法都不被外部改变,形成独立或者说是私有的环境。所以我们可以这样写:...
javascript 设计模式2——享元模式
7/11/2015, 1:05:05 PM
javascript 设计模式
访问
1401
·
评论
0
四个轮子,一个方向盘,有刹车,油门,车窗,这些词首先让人联想到的就是一辆汽车。的确,这些都是是一辆车的最基本特征,或者是属性,我们把词语抽象出来,而听到这些词语的人把他们想象陈一辆汽车。在代码里面也是这样的,为了将所有的车辆统一描述,我们将车的特征抽象出来,作为一个理念,就像柏拉图说的那样,接下来,我们要这个理念描绘他,让人来认识。这也就是程序中的实例化:接下来我们来实例它,让柏拉图的理念在现象世界中得到展示:...
javascript 设计模式1——策略模式
7/11/2015, 12:56:12 PM
javascript 设计模式
访问
1656
·
评论
0
在《javascript设计模式》中,作者并没有向我们介绍策略模式,然而它却是一种在开发中十分常见的设计模式。最常见的就是当我们遇到一个复杂的表单验证的时候,常常需要编写一大段的if和else逻辑代码,这些代码维护起来非常麻烦,但是麻烦的事情远远不止于此。通常一个项目中不止涉及单个的表单或者数据的认证,他们往往成群结队地出现。所以一开始为了他们而编写的if和else逻辑代码不仅会显得非常臃肿,而且随着项目的扩展,使你的代码或变得越来越黏糊,就像。。。。。。。是的,就像意大利面条一样!为了改动小小的一个逻辑——姓名从以前的三个字的限制变成现在四个字限制——,为了这个,你必须把整个项目的所有关于验证的界面都查找替换个遍。但是如果你一开始采用合理的设计模式来设计你的代码的话,或许结果就并不是在漆黑的夜苦苦地加班了。在这里,我们以一个简简单单的数据类型为例,来了解一下我们的策略模式是怎么样帮助我们工作的。...
初窥JavaScript事件机制的实现(二)—— Node.js中定时器的实现
6/19/2015, 4:10:32 PM
访问
1132
·
评论
0
上一篇博文提到,在Node中timer并不是通过新开线程来实现的,而是直接在eventloop中完成。下面通过几个JavaScript的定时器示例以及Node相关源码来分析在Node中,timer功能到底是怎么实现的。无论是Node还是浏览器中,都有setTimeout和setInterval这两个定时器函数,并且其工作特点基本相同,因此下面仅以Node为例进行分析。...
初窥JavaScript事件机制的实现(一)—— Node.js事件驱动实现概览
6/19/2015, 4:08:12 PM
访问
1430
·
评论
0
虽然在ECMAScript的标准里并没有(也没有必要)明确规定“事件”,但是在浏览器中,事件作为一个极为重要的机制,给予JavaScript响应用户操作与DOM变化的能力;在Node.js中,异步事件驱动模型则是其高并发能力的基础。学习JavaScript也需要了解它的运行平台,为了更好的理解JavaScript的事件模型,我打算从Node及浏览器引擎源码入手,分析其底层实现,并将我的分析整理为一系列博文;一方面作为笔记,另一方面也希望能与大家交流,分析和理解有疏漏偏颇之处,还望各位斧正。...
JavaScript 对象转换之 toString 和 valueOf
5/29/2015, 3:30:18 AM
访问
4469
·
评论
1
开始这个话题之前,我们先看一下下面的几个例子:结果有时候会让我大吃一惊,这是为什么呢?今天就和大家讨论一下JavaScript的对象转换。先让我们了解一下JavasScript转换的“原始类型(primitivevalue)”:...
浅谈 Express 4.x Router 模块
5/29/2015, 3:15:10 AM
访问
1140
·
评论
1
Express是目前node社区最主要的Web框架,目前已经到了4.x版本。与3.x版本比,4.x版本拥有一个全新设计的Router模块,开发者可以更方便的对middleware进行隔离与重用。在express3.x版本中,一个控制器往往不是业务逻辑的全部,中间件才是业务逻辑的大头。例如一个处理用户订单的服务,往往验证用户权限、读写数据库等主要逻辑工作都在中间件中就完成了,而控制器所做的大部分工作就是拼数据给视图(view)。...
NodeJS Web 服务平滑升级
5/29/2015, 3:07:02 AM
访问
2401
·
评论
0
用Node搭建一个Web服务是一件很轻松的事情,例如经典的HelloWorld例子,三行代码实现一个Web服务:但是,要做一个稳定可靠的线上Web服务,并不简单。例如异常处理、日志、部署、服务更新等等。本文主要讨论NodeWeb服务的更新。在Web服务更新的过程中,有两个主要步骤,停止旧服务以及启动新服务。如果不能妥善的停止旧服务,那么对于已经在使用旧服务的用户,就会看到一个出错页面。比如这个BadCase:...
JavaScript 中的面向对象的一个实现
5/29/2015, 2:52:41 AM
访问
694
·
评论
0
在许多面向对象语言中(Java,Python),都在语法层面的基础上提供了面向对象编程的特性支持,包括最基本的继承与多态,以及一些语法糖特性:引用父类,调用父类同名方法。在JavaScript中,并没有像Java,Python这样在语法层面提供类式继承,而是借鉴了Self和Scheme的设计原则,提供了原型链的语法特性。在JavaScript中,继承的实现正是基于原型链特性。本文首先介绍了两种基于原型链的继承思想,接着将详细描述ria框架体系中oo库中面向对象特性的实现方案,包括基础特性:类创建,继承,语法糖模板:自身类引用,父类引用,父类同名方法调用。...
Http 协议基础知识3:keep-alive
5/22/2015, 7:37:33 PM
访问
821
·
评论
0
所谓的keep-alive,就是当有多个http请求同一个域名时,如果每个请求都创建一个tcp链接发送接收数据,然后断开,然后再创建,就会导致过多的创建tcp链接开销(在第一部分中有描述)。http中,可以通过connection:keep-alive,似的后面的http请求可以复用之前请求的tcp链接,继续发送数据。...
Http 协议基础知识2:缓存
5/22/2015, 7:35:22 PM
访问
541
·
评论
0
首先缓存有很多种,这里大致介绍下和前端有关的缓存,着重说下http协议相关的缓存。接下来详细解释下http的缓存机制。http主要是通过时间和内容两种办法来处理缓存的。首先,client发起一个http请求之后,server会在http响应头里面告诉client,这个请求能否被缓存。这里有两个响应头可以用来做这件事儿。...