- 浏览: 36262 次
- 性别:
- 来自: 武汉
最新评论
文章列表
avalon学习笔记之拦截器与过滤器的区别
- 博客分类:
- avalon
1.拦截器:当我们修改界面值后,VM中的模型需要自动更新值,如果模型中的值是数字或布尔等类型,那么界面中的值(界面的值都是字符串类型)需要进行类型转换后才能变成数字或布尔类型,那么这个类型转换的事由谁去处理呢?由拦截器处理。
2.过滤器:当我们修改VM中的模型的值后,在值显示在界面前,我们我们需要将值变成我们知道的值,那么这个值就需要进行一次显示前的处理,这个处理的过程我们称之为过滤,这个处理的工具我们称之为过滤器。
总结:界面的变化引起模型的变化,从界面到模型的数据转换可以由拦截器处理;从模型的变化到界面显示的过程中,数据的加工处理可以由过滤器处理。
个人学习感悟,如理解有问题,还原 ...
之前做的公开项目问题总结
- 博客分类:
- 数据库
之前做的公开项目的后台管理系统,我们使用的达梦数据库的sql语句执行错误,出现非法日期的异常。使用排除法,确定了是哪个字段出现异常,但是不知道是这个字段的哪几条出现数据有非法字段,解决方案:数据库中的非法字符用isdate来判断是否是非法字符,isdate(datestr),datestr如果是非法字符,那么isdate返回值为0,比如:update XXXK_WEB.xxx_goods_tag set tag_value='2014/12/1' where tag_name = 'XXXDate' and isdate(tag_value)=0
java实现excel的导入与导出
- 博客分类:
- Java
1.java实现excel导入导出的几种方式
1.1使用POI
APache 软件基金会提供的开源库。
HSSF: 提供对对2003及其以前的excel版本的读写功能
XSSF:提供2007及其以上版本的读写功能。
HWPF:提供对word格式档案的读写功能
HSLF:提供对PPT的读写功能。
HDGF:提供对visio格式档案的读写功能。
1.2 JXL
它是一个开源项目,可以创建,读写, ...
我们先来看一个函数。
function person() {
}
这个函数我们使用chrome观察其运行情况,可以看到Person有两个属性,一个是prototype,一个是__proto__
。其中prototype是每个函数(只有函数才有这个属性)的属性。而__proto__是js对象的属性,即只要是js对象,都有这个属性。比如
var arr = [],var obj = {}等等,都有__proto__。
如下图所示:
那prototype有什么作用呢?
new 关键字和Person构造器创建的所有的对象都共享prototype上的属性。比如
fun ...
bind可以改变函数执行的上下文
- 博客分类:
- js笔记
javascript有改变函数上下文的能力:原生的实现方式是使用call和apply方法。
在IE9及其以上版本中,新增一个可以改变函数上下午的方法叫bind(IE9以下版本需要用户实现):
示例如下:
var foo = {
name: 'foobar'
}
function f() {
alert(this.name);
}
f();//弹出是window对象的name属性值。分析:如果不使用bind,f()的上下文是window
var f1 = f.bind(foo);
f1();//弹出是foo 对象的name属性值。分析:如果使用bin ...
在编写页面的过程中,会碰到这样一个现象:
文字也图标没有居中对齐,同时,图标也会出现边框?对于这两个问题,我们先看
图标与文字的居中对齐问题,我们可以使用css中vertical-align属性,它的含义是设置元素的
垂直对齐方式。这里,我们使用居中垂直对齐:verical-align:middle;此实现方式符合w3c标准;
注意:align="absmiddle"也可以实现图片与文字的居中对齐,但是它不符合W3C标准,不建议使用。
我们来看另一个问题:图标有边框;其实设置图标的边框为0即可:border:0px;
代码改正后img的代码如下 ...
ol2.x浮云框类使用不当会导致的bug
- 博客分类:
- bug积累
1.在地图网站中查询出矢量要素结果列表,点击结果列表中的一项,结果IE提示this.size.w错误(如果正常的话,应该弹出一个浮云框),这个问题出现的原因是用户传递给浮云框的长度为0,比如说传递了一个""串,此时this.size的值就为空了。说明:ol2.x中浮云框内容的长度是不能为空的,否则会报错
最近有用户反映在IE10下运行openlayers2.11版的地图网站会出现瓦片错位的现象(具体现象是瓦片上下错位,左右不错位)
经过本人一番辛苦的调试,发现问题出现在Gird.js文件中的initGriddedTiles方法中的do while循环中。如附件中所示。
initGriddedTiles方法中有一个嵌套的do while循环(do while语句中还有一个do while语句),里层的do while语句块在第一次执行的tileoffsetlon的值一定是等于startLon的,但是我测试发现,第一次执行里层的do while语句块的时 ...
例子一: var o={flag:0}; var test=o.flag||false; alert(test);
这个例子他不弹出0,居然弹出flase。
例子二:
var o={flag:1}; var test=o.flag||false; alert(test);这个例子是弹出1
例子三:
alert("" == false);
js会自动进行类型转换。弹出true
例子四:
alert(0 == false);
js会自动进行类型转换。弹出true 。如果是1==true的话,那就是弹出true了。
SDK API维护与开发总结
- 博客分类:
- SDK API
1.在封装API的过程中,必须要分清楚哪些功能是属于API级别的,哪些功能是属于工程级别的,比如说:标绘操作,其核心就是标点标线标面,至于标绘前的提示操作,那是工程应用的需要。不宜纳入API封装。
2.对于修改的底层API类,必须要把修改的原因,在什么地方,修改什么内容等说清楚,就是修改的来龙去脉说清楚。
3.API中没有使用标准注释或没有使用下划线的属性会被当做私有属性处理。
待续...
在一个SDK框架写完后,突然发现,有些类的方法判断不够全面。若此时在现有的框架中增加这些判断,在一定程度上可能会打乱框架的逻辑,于是采用打补丁的方式,就不用修改框架本身。
打补丁常常是通过覆盖框架中的方法予以实现。比如:
Geo.View3D.Layer.Vector.prototype.drawFeature = function(feature) {
... }
以上的方法就是在原型上重写drawFeature方法实现打补丁。将这个方法放在补丁文件中导入工程即可。比如hotfix.js
一下是请求片段:<TileMatrix> <ows:Identifier>1</ows:Identifier> <ScaleDenominator>2.9582935545456564E8</ScaleDenominator> <TopLeftCorner>-180.0 90.0</TopLeftCorner> <TileWidth>256</TileWidth> ...
1.整个地图地图容器就是360金字塔的一个范围
2.地图在不同的级别表示在360金字塔的不同层
属性查询如何实现范围查询
- 博客分类:
- GIS
1.属性查询中范围与空间查询范围的区别?
属性查询中的范围是属于普通索引,几何查询中的范围查询属于空间索引(索引方式有三种:全文索引,普通索引,空间索引)
2.属性查询中的范围的filter的书写方式是var lon = new Geo.Filter.Comparison({ type: OpenLayers.Filter.Comparison.BETWEEN,//关系运算 property: "x",//查询字段 lowerBoundary: bounds.left, upperBoundar ...
1.bug反馈:bug反馈需要按照提bug的步骤来
2.需求反馈:功能或服务或文档上的问题,即是需求反馈
3.反馈信息:功能或服务或文档上的
以上三点要求其他开发人员或项目经理一看就大体明白