- 浏览: 594084 次
- 性别:
- 来自: 西安
最新评论
-
青春依旧:
html5教学哪家强!当然要上华清远见!
深入理解浏览器兼容性模式 -
ashur:
真机智,看得我都笑自己了
js 字符串转dom 和dom 转字符串 -
panghaoyu:
实现一个智能提示功能需要ajax、数据库、jsp/php、算法 ...
solr第一弹 autocomplete(自动补全) -
FakLove:
连线如何删除啊
基于html5 的拖拽连线 -
FakLove:
连线可以再删除吗?
基于html5 的拖拽连线
文章列表
web中绘制图形一直以来都是一个web应用中的难题,传统的解决方法基本都是基于SVG或者VML 的实现,开发程序多年但是从来也没有机会开发过图形绘制的程序,回想前年第一次看的JAVAEYE上有一个网友研究的web版本的流程 ...
转自 http://blog.chenlb.com/2009/08/lucene-scoring-architecture.html
Lucene 评分体系/机制(lucene scoring)是 Lucene 出名的一核心部分。它对用户来说隐藏了很多复杂的细节,致使用户可以简单地使用 lucene。但个人觉得:如果要根据自己的应用调节评分(或结构排序),十分有必须深入了解 lucene 的评分机制。
Lucene scoring 组合使用了 信息检索的向量空间模型 和 布尔模型 。
首先来看下 lucene 的评分公式(在 Similarity 类里的说明)
sc ...
EXT4 中提供的grid过滤插件,可以在列中直接过滤数据,文字等不同类型。
按照EXT提供的示例发现很难实现官方的功能,在google上搜索了一下发现有很多人包括国外的开发人员也遇到这样的问题
我按照官方提供的例子弄了一下第一遍也是没有成功,仔细分析了一下这东西的使用的EXT的普通控件有所不同。
1:FiltersFeature
这个东西需要单独引入一下,此类数据ux 扩展包,所以按照例子照搬是没有用的,首先需要重开发包中找到examples\ux 下的所有文件移到你需要的指定地址,然后倒入'Ext.ux.grid.FiltersFeature' 这个类 ...
JS NameSpace
- 博客分类:
- JavaScript
原文:http://dev.firnow.com/course/3_program/java/javashl/20081128/152797.html 引入命名空间之前,一个令开发人员头疼的问题就是如何防止函数名/类名和其他人的冲突,在一个公司内部项目组之间可以通过命名预定(比如加前缀等)解决这个问题,但是把视线放到整个软件开发领域,在当今协作开发相当盛行的时代,这个问题却依然存在。在使用多个第三方框架或类库的时候,你唯一能作的就是祈祷它们的命名不要冲突,如果真正发生这种灾难的话,你唯一能作的就是放弃其中一个(注:可能是我孤陋寡闻,呵呵)。命名空间的引入相当程度上解决了这个问题,当然, ...
说到prototype,就不得不先说下new的过程。
我们先看看这样一段代码:
var Person = function () { };
var p = new Person();
很简单的一段代码,我们来看看这个new究竟做了什么?我们可以把new的过程拆分成以下三步:
<1> var p={}; 也就是说,初始化一个对象p。
<2> p.__proto__=Person.prototype;
<3> Person.call(p);也就是说构造p,也可以称之为初始化p。
关键在于第二步,我们来证明一下:
var ...
js面向对象学习7 继承
- 博客分类:
- JavaScript
JS继承
所有开发者定义的类都可以作为基类,出于安全原因所有本地类,和宿主类 是不能作为基类使用的。
应为js 中所有的属性和方法都是公用的所以子类一旦继承父类就拥有了父类所有的属性和方法,而且可以为父类新增方法和属性,也可以覆盖父类的属性和方法。
因为Emcascript中没有明确的指定继承方式,所有所有的继承都是模拟而来
对象冒充:
对象冒充是开发者在在函数中频繁的使用this关键字后出现的。原理如下:
构造函数使用this给所有的属性和方法 ...
方法一
var o=new Object();
o.age=20;
o.name="lisa";
o.showName=function(){
console.log(this.name);
}
这种写法创建了一个对象o 给o添加属性和方法,看似没有问题但是在创建多个o 就需要重复的给o添加属性,所以这种写法是较为不通 ...
本地对象:
ECMA-262 把本地对象(native object)定义为“独立于寄主环境的Ecmascript实现提供的对象”,简单说本地对象就是ECMA-262提供的引用对象
Object
Function
Array
与java不同array 在Ecmascript中是真正的对象,可以使用var array=new Array();或者 var array=[];
来创建Array 对象,也可以在new Array(10) 指定初始化数组的长度,数组的长度是自动增加或者减少的,
最大长度是4294967295 大部分人都很难用到数据的极限,如果突破了这个长度数组 ...
Ecmascript 最令人兴奋之处莫过于函数,实际上是功能完整的对象,它是ecmascript 的核心。
Ecmascript函数是不能重载的。例如
function doShow(i){
console.log(i);
}
function doShow(i){
console.log(i*2);
}
调用 do(10) 的时候结果是20 应为第二个do函数会覆盖第一个do函数。
arguments 对象
在函数代码中可以使用一个特殊的对象arguments,开发者无需指定参数名称就可以直接调用参数,例如
function show(){
...
js 面向对象学习3 引用类型
- 博客分类:
- JavaScript
引用类型
引用类型通常叫做(类) 但是emcascript 中其实是没有类这个概念的,emcascript 定义了对象逻辑上是等同于其他编程语言上的类定义。
对象是new 运算符加上要实例化类的名字产生的。例如下
var obj=new Object()
Object 类
object类本身作用不大,但是了解其他类之前还是要先明白一些object,object类与java object 类相似,是其他所有类的根类。object 类中所有的属性和方法也都会出现在其派生类中。
object 类 ...
js 面向对象学习2 类型转换
- 博客分类:
- JavaScript
EMCAScript 类型转换
类型转换
emcascript 提供了大量简单转换方法,还有几个全局方法用户复杂的转换,无聊那种情况在emcascript 中都是简单的一步操作。
emcascript 中所有的boolean值 数值 ...
js 面向对象学习1 数据类型
- 博客分类:
- JavaScript
ECMAScript基础
1原始值和引用值:
primitive value 是储存在stack中的简单数据段,也就是说他们的值直接储存在变量储存的位置。
reference value 是储存在heap 中的对象,也就是说储存在变量 ...
自动折线,自动判断起始点坐标,拖拽位置变换,大小拖拽,箭头指向等功能,这个版本稍微复杂一点,
还有个简单版本的实现http://zha-zi.iteye.com/blog/1586814 这个应该比较容易理解坐标换算不太多
<!DOCTYPE HTML>
<html>
<head>
<style>
body {
margin: 0px;
padding: 0px;
}
canvas {
border: 1px solid # ...
因为要实现拖拽连线研究了一下基于extjs 和html5的不同实现方法
extjs底层的画图引擎是svg 不知道在html5大潮即将袭来的前夕一贯走在技术前沿的extjs开发团队没有自己封装基于html5的画图引擎,而是选择了svg 。
下边是花了不到一天的时间实现的任意点连线和拖动功能,代码没有优化,稍微乱了点
如果单纯应用canvas进行画图,拖拽是非常麻烦的,我们往往要基于第三方的画图类库,这里实现是基于kineticjs
为了测试方便我使用了双击事件控制拖动还是划线 。
代码
<!DOCTY ...
了解canvas这个标签后,会发现在一个canvas类似一个img图片,在canvas中绘制的图形都是一个整体,所有的事件也都是发生在这一个标签上,没有办法直接判断事件是发生在canvas中的某个图形上。但是通过canvas中的路径的概念可以解决这个问题。
关键:通过路径来绘制图形,用每一个图形是一个路径,事件绑定在canvas标签上,获得事件的发生的x,y坐标。再通过
isPointInPath(),来判断点(x,y)是否在路径内,需要注意的是isPointInPath()只对当前路径(currentPath)
有效,并且经测试发现,只对当前路径的第一个子路径有效(subPath,一个 ...