开发小记

作者: 流河 | 来源:发表于2014-11-28 11:15 被阅读40次

开发小记

禁止页面滚动
js

document.body.style.overflow='hidden';

jquery

$('body').css('overflow','hidden');

监听input的输入事件

// propertychange 事件是针对ie浏览器的,要放到input事件前面     
$('#boardlot_num').on('propertychange input',function(){
    // do something
}

绑定input事件的时候我发现以前用的autoNumerbic 跟它 会有冲突:

chrome 和 firefox 支持input事件,绑定autoNumberic插件后,自定义的input事件失效

于是我做了一点关于input限制输入纯数字的解决方案:
html代码 :

<input id="boardlot_num" value="1" data-pre="1" />  

js代码:

$('#boardlot_num').on('propertychange input',function(){
        var value = $(this).val(), preValue = $(this).data('pre');
        if(/^\d*$/.test(value)){
            // do something
            $('#boardlot_num').data('pre',value);
        }else{
            $('#boardlot_num').val(preValue);
        }
});
// 兼容chrome firefox ie8 亲测有效

按List中的对象的属性排序

// 查询list      
List<MallProductTeambattleSignup> ogSigns = mallProductTeambattleSignupServ.list(propsSignup, 1, 8, null);     
// 初始化比较器,比较器的泛型为list的泛型     
Comparator<MallProductTeambattleSignup> comparator = new Comparator<MallProductTeambattleSignup>() {   
    @Override   
    public int compare(MallProductTeambattleSignup o1, MallProductTeambattleSignup o2) {    
        // 按count属性按降序排    
        return o2.getCount() - o1.getCount();     
    }    
};     
// 调用Colloctions接口对list排序      
Collections.sort(ogSigns, comparator);     

Git 配置 path
配置 ...\Git\bin 和 Git\libexec\git-core

sql执行顺序

  1. from子句组装来自不同数据源的数据;
  2. where子句基于指定的条件对记录行进行筛选;
  3. group by子句将数据划分为多个分组;
  4. 使用聚集函数进行计算;
  5. 使用having子句筛选分组;
  6. 计算所有的表达式;
  7. 使用order by对结果集进行排序
(8)SELECT (9)DISTINCT 
(11)<TOP_specification> <select_list> 
(1)FROM <left_table> 
(3)<join_type> JOIN <right_table> 
(2)ON <join_condition> 
(4)WHERE <where_condition> 
(5)GROUP BY <group_by_list> 
(6)WITH {CUBE ROLLUP} 
(7)HAVING <having_condition> 
(10)ORDER BY <order_by_list> 

打乱一个list的顺序
应用场景:
我要做援购的随机取援购码,但他们在数据库中是数据存在的,于是乎,有多种方法:乱序存顺序遍历顺序存乱序遍历等等。
这里利用了一个小技巧,顺序存,读取之后打乱,再顺序取,基本代码如下:

List<?> unusedCodes = xxx.list(****);
// shuffle 是 洗牌的意思
java.util.Collections.shuffle(unusedCodes);

// 遍历,不赘述      
for(...){
  // TODO ...
}

java基础真的很重要。这道题当作是一道面试题都行。

js 获取url参数

var mycode = window.location.search.substr(1).split("&")[0];           
mycode = mycode.split('=')[1];

数据库类型用的date类型非datetime类型报batch_update错误
RT

mysql group_concat() 陷阱
mysql配置group_concat()函数最长可接收1024长度,对于某些情景下这个长度是不够的。

查询语句:

SELECT @@global.group_concat_max_len;

修改语句:

-- 大小请自行斟酌
SET GLOBAL group_concat_max_len=102400;

也可以在文件(my.ini)中后边追加这一句:

group_concat_max_len = 102400   

注:我用的mysql是5.6.20,文件在C:\ProgramData\MySQL\MySQL Server 5.6\my.ini

关于hql查询和sql查询
hql查询用user_iduserId这两种形式都好使(前提是po用的userId形式,dao层用getCurrentSession,如果用openSession是无效的)

关于转义
经过我这段时间的观察,有以下几个地方会出问题:

  • 后台拼接html返回页面。对于开放输入的内容要用StrUtil.escapeHtml()方法或者StrUtil.textarea2Html()等方法。
  • 前台jsp中的el表达式,如${user.nickname},改成struts标签形式<s:property value="user.nickname"/>
  • 前台ajax返回数据时进行处理,如$('#nickname').text(data.nickname),改为$('#nickname').text($('<pre/>').text(data.nickname).html())

如果还有其他情况会继续补充

The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory异常
这个异常是servlet执行service方法时报的错,多半是jdk、tomcat和web.xml之间不匹配出现的。tomcat8中servlet-api.jar改了很多,在svn项目检出时,j2ee版本不要定太高,目前意思网的是2.5,tomcat8的标准是3.1,但我不建议到3.1,容易出现servlet的bug
网友解答:

Get rid of any servletcontainer-specific libraries such as jsp-api.jar in your /WEB-INF/lib folder. This exception indicates that you've put servletcontainer-specific libraries of a container which supports only Servlet 2.4 / JSP 2.0 or older in there (the getJspApplicationContext() method was introduced in Servlet 2.5 / JSP 2.1). This is a major mistake. Those libraries don't belong in the webapp's classpath.

Perhaps you did this to overcome project compilation errors, which is indeed a pretty common beginner's mistake. This should have been solved differently, you should refer the target runtime in your project, not copy some libraries of an arbitraty servletcontainer make/version into your project. It would make your project incompatible with servletcontainers of a different make and/or version.
相关链接1
/相关链接2

关于html中的target属性与点击事件
如果用到target="_blank" 点击时会新开页,并且每次点击展开不同页面。
如果用到target="xxxx" 点击时会新开页,但是每次点击都是刷新同一页面
在新开的页中,能够取到父页面的元素,如下:

window.opener.$.find('#bgColor')

真正点击触发的事件中,回调函数写window.open是不会被屏蔽的

ServletContext取资源路径
旧版本当前使用的方法是

String path = ServletContext.getRealPath("WEB-INF/config");

但是网友们说,这不好,这是坑,而且tomcat8下不好使,改进代码如下:

URL url = this.context.getResource("/WEB-INF/config");
path = url.getPath();

CSDN博文地址

关于ActiveXObject
window.ActiveXObject 这个元素在ie8-10都是存在的,ie11就没了

js比较数字大小
比较大小之前一定要看看变量的类型,如果是String型,就得这样写

parseInt(arg0) < parseInt(arg1)

否则会出现500>1000的情况(字符串比较大小按单个字符比较)

Hibernate merge和save区别
merge对对象操作之后,持久化会断开,如果期望执行的是save操作,保存之后的自增主键是获得不到的

eclipse启动时Workspace in use or cannot be created, choose a different one
把workspace.metadata目录下的.lock文件删除掉

IE8下的js原生trim报错
使用jquery的$.trim()

jQuery给DOM追加元素时,可以简化

$('body').append($('<li/>');

标签按钮切换抖动问题
选中状态下加了classthis,this的样式加了1px的border,如果line-heighthight一样的话,会有抖动问题,修改为line-height = height - 2*border

杜绝连点问题

  1. 表单提交,如果是struts下可以加<s:token/>
<s:form action="page1" theme="simple">    
<s:datetimepicker name="order.date" label="购买日期" toggleType="explode" value="today"/><br/>    
<s:token/>    
<s:reset/><s:submit/>    
   </s:form>

另外要配置拦截器,详情请戳我

  1. ajax提交可以这样做:
$('#submit').on('click', function() {
    // 校验表单
    if( validateForm() ) return;
    // 接触绑定的点击事件
    $('#submit').off('click');
    // 提交表单
    // TODO
})

off()函数可以解除指定元素上的指定事件
jquery 文档 :

unbind方法跟这样的作用类似
jquery 文档 :

意思网

相关文章

  • Web版扫雷开发小记(3)

    前篇: web版扫雷开发小记(1)web版扫雷开发小记(2)web版扫雷开发小记(3)web版扫雷开发小记(4) ...

  • Web扫雷开发小记(1)

    目录Web扫雷开发小记(2)Web扫雷开发小记(3)Web扫雷开发小记(4) 刚好今天做阿里前端笔试问到扫雷了,那...

  • web版扫雷开发小记(4)

    目录:Web扫雷开发小记(1)Web扫雷开发小记(2)Web扫雷开发小记(3) 其实在完成上篇的功能之后,一个扫雷...

  • Android音乐播放器开发小记——项目简介

    Android音乐播放器开发小记——项目简介 Android音乐播放器开发小记——功能实现1 Android音乐播...

  • iOS 开发小记-01

    最近又开始写不少业务代码了,有些小知识点小坑,用这个系列记录一下。iOS 开发小记-01iOS 开发小记-02 1...

  • iOS 开发小记-02

    最近又开始写不少业务代码了,有些小知识点小坑,用这个系列记录一下。iOS 开发小记-01iOS 开发小记-02 1...

  • 2018-02-06

    开发小记 cd ~ mv.itmstransporter/.old_itmstransporter/ 解决上传ap...

  • 值得一读

    iOS 开发 Clang Attributes 黑魔法小记 UIApplication的详细介绍 MVVM奇葩说

  • 开发小记

    本软件的由来 这一切都只是偶然,那是很普通的一天。中午,我拿起手机照常看书,这时一篇文章吸引了我的眼球,该文章说了...

  • 开发小记

    今年过的好快,大三第一学期就这样匆匆的结束了。说起来这学期的进步还是很明显的,说起来已经从原来的小打小闹步入了正轨...

网友评论

    本文标题:开发小记

    本文链接:https://www.haomeiwen.com/subject/faaptttx.html