动若狡兔,静如处子

by doctor

统计

留言簿

阅读排行榜

评论排行榜

2011年11月8日 #

JS常用语句收集

1、判断是否为空
function isEmpty(s)
 {
  return ((s == undefined || s == null ||s == '' || s.replace(/(^\s*)|(\s*$)/g, "")=='') ? true : false);
 }
2、判断数组中是否有相等元素
function checkEqual(arr){
  
for(i=0;i<arr.length;i++){
     
for(j=i+1;j<arr.length;j++){
       
if(arr[i].value==arr[j].value){
           
return true;
        }

    }

  }

  
return false;
}
3、对HTML标签注册click事件,并获取该元素的父标签,及子标签
Event.on(Dom.getElementsByClassName('check','a'),'click',function(evt){
                Event.preventDefault(evt);
                
var target = Event.getTarget(evt);
                
var td = Dom.getAncestorByTagName(target,'tr');
ar title 
= td.getElementsByTagName("input")[0].value;}
);
4、对button注册click事件,并提交表单
Event.on("j_add","click",function(evt){
**********
document.form1.event_submit_do_add.value
="submit";
                document.form1.submit();
             }

          });
5、在父元素下创建子元素,动态添加页面元素
var tab =document.getElementById("guanlian");
    
var newRow = tab.insertRow(0);//添加了一行
    var newTd1        = newRow.insertCell(0);
newTd1.innerHTML
="关联词名";
6、借助YUI进行Ajax异步交互
var callback ={
                    success:
function(o) {
                        
var result = o.responseText;
                        document.getElementById('chk_thesaurus').innerHTML
=result;
                                    }
,
                    failure: 
function(o) {
                        alert(
"验证请求,链接服务器失败!");
                    }

                }

                ;
                
var sUrl = '请求的页面地址及参数';
                YAHOO.util.Connect.asyncRequest('GET',sUrl,callback);
7、div样式的两种写法(.divforcheck{ width:500px; height:300px; background-color:#f00; color:#fff; }
                                                                                <div  style="border: 1px dotted black;background-color:#FFFFFF;width:500px ">)
8、confirm的用法
if(confirm("您修改了关联词,请确定在提交前进行了验证")){
                    document.form1.event_submit_do_add.value
="submit";
                    document.form1.submit();
                }

posted @ 2011-11-24 20:31 doctor 阅读(234) | 评论 (0)编辑 收藏

三天的页面开发

    上周五开始一项开发工作,将树形的数据结构放到关系型数据库,并提供页面进行数据的维护,遇到的问题:1、需求不清晰;2、表结构不清晰;3;前端开发技术非常不熟悉;
    结果就是开发缓慢,系统交互效果差,做出来的页面自己都不满意,开发慢导致上线压力大,心里压力也大,很严重的加班。。。。。。。
    总结下用到的页面技术:1、CSS+DIV样式定义的两种写法(.divforcheck{ width:500px; height:300px; background-color:#f00; color:#fff; }
                                                                                <div  style="border: 1px dotted black;background-color:#FFFFFF;width:500px ">)
                                   2、JS:动态的添加页面元素var tab =document.getElementById("guanlian");
                                                                             var newRow = tab.insertRow(0);//添加了一行
                                                                             var newTd1        = newRow.insertCell(0);
                                                                              var newTdName     = newRow.insertCell(1);   ;
                                              判断为空function isEmpty(s) { return ((s == undefined || s == null || s == "") ? true : false); }
                                              弹出选择框:if(confirm("您修改了关联词,请确定在提交前进行了验证")){
                                                                                 document.form1.event_submit_do_add.value="submit";
                                                                                  document.form1.submit();}
                                              Ajax交互:
var callback ={
                    success:
function(o) {
                        
var result = o.responseText;
                        document.getElementById('chk_thesaurus').style.display
="";
                        document.getElementById('chk_thesaurus').innerHTML
=result;
                        document.getElementById('chk_thesaurus').display 
= "block";
                    }
,
                    failure: 
function(o) {
                        alert(
"验证请求,链接服务器失败!");
                    }

                }

                ;
                
var sUrl = 'ajax/checkThesaurus.htm?relName='+encodeURIComponent(encodeURIComponent(title));
                YAHOO.util.Connect.asyncRequest('GET',sUrl,callback);

                                                    服务器段java代码两种写法:1、在反馈ajax请求的页面中填写符合HTML标准的反馈InnerHTML
                                                                                         2、通过        
rundata.getResponse().getWriter().print("var ajaxRequestData_bizType = "+JSONObject.fromObject(tree).toString());

 context.put("result", net.sf.json.JSONArray.fromObject(tree).toString());(打成JSON串)


                          3、表单提交处理(JS提交表单)document.form1.event_submit_do_add_treeWordProperty.value="submit";
                                                                       document.form1.submit();    
java代码的Exception控制、异常处理             
    

posted @ 2011-11-24 14:55 doctor 阅读(214) | 评论 (0)编辑 收藏

循环嵌套验证

    之前正则一直不支持嵌套循环的验证即类似于html的格式较验,昨天晚上无聊就考虑了一下这个的可实现方式:通过维护特征“符号”队列来实现
    如在有特定格式的文件中(标签成对出现的情况下)顺序读入待验证标签放入队列中,较验对应的下一个输入如果为与该标签对应的标签那么将该标签从队列中弹出,如果不对应则将下一个标签也放入队列中,进行下一次的验证直到该文件结束时如果队列恰好为空那么证明文件较验通过

posted @ 2011-11-10 10:31 doctor 阅读(150) | 评论 (0)编辑 收藏

oracle优化

记录点常识:
   1、为实现全表扫描,Oracle读取表中所有的行,并检查每一行是否满足语句的WHERE限制条件一个多块读操作可以使一次I/O能读取多块数据块 (db_block_multiblock_read_count参数设定),而不是只读取一个数据块,这极大的减 少了I/O总次数,提高了系统的吞吐量,所以利用多块读的方法可以十分高效地实现全表扫描,而且只有在全表扫描的情况下才能使用多块读操作。在这种访问模 式下,每个数据块只被读一次。
   2、先通过index查找到数据对应的rowid值(对于非唯一索引可能返回多个rowid值),然后根据rowid直接从表中得到具体的数据,这 种查找方式称为索引扫描或索引查找(index lookup)。一个rowid唯一的表示一行数据,该行对应的数据块是通过一次i/o得到的,在此情况下该次i/o只会读取一个数据库块。
  在索引中,除了存储每个索引的值外,索引还存储具有此值的行对应的ROWID值。
  索引扫描可以由2步组成:
  (1) 扫描索引得到对应的rowid值。
  (2) 通过找到的rowid从表中读出具体的数据。
  每步都是单独的一次I/O,但是对于索引,由于经常使用,绝大多数都已经CACHE到内存中,所以第1步的 I/O经常是逻辑I/O,即数据可以从内存中得到。但是对于第2步来说,如果表比较大,则其数据不可能全在内存中,所以其I/O很有可能是物理I/O,这 是一个机械操作,相对逻辑I/O来说,是极其费时间的。所以如果多大表进行索引扫描,取出的数据如果大于总量的5% —— 10%,使用索引扫描会效率下降很多

然后对于特殊的业务场景要先做数据的筛选,然后再做查询  关于查询筛选出来的结果集能不能走到索引这个问题需要再测试一下

posted @ 2011-11-08 16:44 doctor 阅读(175) | 评论 (0)编辑 收藏