市委组织部考核项目——问题记录
来源:互联网 发布:淘宝联盟做推广多少钱 编辑:程序博客网 时间:2024/05/01 18:47
1.当session获取不到值得时候,我们需要让用户重新登录,这时候就需要调转到登陆页,因为我的大部分方法是写在异步处理程序中的,不方便在后台进行判断,而在一般处理程序中做判断的时候,当session为null时,虽然也执行了跳转页语句,但是界面上是没有什么变化的,最后将判断session是否存在的方法写在了js中,其他方法只要调用这个方法就可以了。方法如下:
function checkSession(){ var val = "<%= Session["UnitsID"]==null?"":Session["UnitsID"]%>"; if (val == null||val=="") { //location ="../../Login.aspx"; //location.href ="../../Login.aspx"; //window.location.href ="../../Login.aspx"; //opener.document.location.href= "../../Login.aspx"; //以上四种方法跳转页时都会出现在框架外 open("../../Login.aspx", "_parent", true);//跳转页在框架呢 } }
对于以上方法中的两种效果如下:
a.跳转页在框架中:
个人认为这种效果很难看,估计用户使用的时候应该也会费解吧,不过这也要看用户的需要和审美了吧
b.跳转页不在框架中:
个人认为这种效果比较不错,说明(这两种效果登陆之后的界面是一样的)
2.在一个框架中,点击左侧的菜单项时,右侧需要根据菜单内容出现一个界面,这时候咱们当然是不想让它逃出这个框架了,方法如下:
<li><a href="test.aspx" target="main">菜单项</a></li>
说明:main为右侧框架的名字,这样他就会老老实实的呆在框架中了
下面是target的属性值的解释,详细见:html中target属性
3.当我们需要根据索引值获取节点的时候,一定要多多注意,火狐与其他浏览器的值不一样,开始我不知道这一点,在火狐上调试好了,结果换了浏览器就找不到了,乱猜导致这种现象的原因,用了不到一个小时,最后才发现原来索引变了,在这说这个的原因就是给大家提个醒,出现这种情况后一定要想想这个啊.没有找到一个很好的解决办法,只是采用了其他方式来避免了这个问题,如果大家有好的办法,一定要记得分享啊
4.text-align:center,这一属性在IE6,IE7中可以使块级元素居中对齐。其他浏览器中,text-align:center仅作用于行内内容上,解决这个问题比较好的方式,就是为所有需要相对父容器居中对齐的块级元素设置“margin-left:auto; margin-right:auto”。但这个方式IE6,IE7中不支持,所以还要设置父容器的 "text-align:center;"。若居中对齐的子元素内的行内内容不需要居中对齐,则还需要为其设置“text-align:left”
5.唐欢讲数据库优化之后对处理大数据的语句进行的修改
--之前的not in
select CadresName,Position,Unit FROMV_InquireCadresData where Name= '市直单位'and Checked='Yes' and
CadresID not in(select CadresID fromV_InquireCadresDataed where Name='市直单位'and YearTime='2014' )
--之后的left join
select A.CadresID,CadresName,Position,UnitFROM V_InquireCadresData AS A left join (select CadresID from V_InquireCadresDataed where Name='市直单位'andYearTime='2014'and Unit='市环保局' ) as B on A.CadresID=B.CadresID where B.CadresID is null and A.Checked='Yes' and Name='市直单位'and Unit= '市环保局'
做了这样的改进之后,效率提高了很多,同时在这次合作中还学到了这么一条语句, SELECT name, id From sysobjects WHERE xtype = 'u' ORDER BY name ASC是用来查询sqlserver中数据库的所有表的字段的(此例以字段name,id为例)
6.那天在米老师那聊天说到分支多的情况下能用switch ,case就别用if语句,最好使用设计模式——策略模式,说到这想了想好像自己平时并没怎么注意到这一点,赶紧回来了解
switch...case与if...else的根本区别在于,switch...case会生成一个跳转表来指示实际的case分支的地址,而这个跳转表的索引号与switch变量的值是相等的。从而switch...case不用像if...else那样遍历条件分支直到命中条件,而只需访问对 应索引号的表项从而到达定位分支的目的,不过,switch...case 只能处理case为常量的情况,对非常量的情况是无能为力的。例如 if (a > 1&& a < 100),是无法使用switch...case来处理的。所以,switch只能是在常量选择分支时比if…else效率高,但是if…else能应用于更多的场合,比较灵活,选择哪一种方式还是需要联系实际的,单纯的考虑效率,你可以做个实验自己测试一下,下面是我看了艳玲师姐测试时间的博客后, 写的一个超级简单的测试程序。
Switch…case方式
protectedvoid Page_Load(object sender, EventArgs e) { System.Diagnostics.Stopwatch stopwatch = newSystem.Diagnostics.Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 int a = 6; int b; int count = 10000;//int count = 100000000; for (int i = 0; i < count; i++) { switch (a) { case 1: b = 1; break; case 2: b = 2; break; case 3: b = 3; break; case 4: b = 4; break; case 5: b = 5; break; case 6: b = 6; break; } } stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double minutes = timespan.TotalMinutes; // 总分钟… }
count = 10000时;
count = 100000000时;
If… else方式
protected void Page_Load(object sender,EventArgs e) { System.Diagnostics.Stopwatch stopwatch = newSystem.Diagnostics.Stopwatch(); stopwatch.Start(); // 开始监视代码运行时间 int a = 6; int b; int count = 10000; //int count = 100000000; for (int i = 0; i < count; i++) { if (a == 1) { b = 1; } else if (a == 2) { b = 2; } else if (a == 3) { b = 3; } else if (a == 4) { b = 4; } else if (a == 5) { b = 5; } else if (a == 6) { b = 6; } } stopwatch.Stop(); // 停止监视 TimeSpan timespan = stopwatch.Elapsed; // 获取当前实例测量得出的总时间 double minutes = timespan.TotalMinutes; // 总分钟… }
count = 10000时;
count = 100000000时;
对比之后相差不是很大,但是你有没有想过这只是一个测试代码而已,没有参杂着更多的元素.如果把它用到逻辑性很强的代码中呢?所以说用什么还是需要考虑需求的,再嵌套一层会怎样?有兴趣的可以去试试,不过一定要写一套等价的代码啊.
7.至于策略模,当一个对象有很多的行为,我们往往会想到用多重的条件语句来实现,虽然能实现,但是如果又来了好几个行为你怎么办,再原来的基础上继续加分支?这样当然可以实现,不过这样设计太过依赖对象了,此时,使用策略模式,把这些行为转移到相应的具体策略类里面,行为的增,减也就不会直接影响到对象,它是依赖接口的,也就可以避免使用难以维护的多重条件选择语句了;这种情况只是你考虑选择使用策略模式的情况之一,可能一说起策略模式大多数人首先会想到算法,不错,策略模式将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换,策略模式被很多人称为"可插入式的算法" .
以上是在项目过程中的一些问题的记录,如果有什么地方理解有误,希望得到大家的纠正.
- 市委组织部考核项目——问题记录
- 市委组织部考核项目——动态添加,删除行
- 市委组织部考核项目——多条数据的提交
- 市委组织部考核项目——获取多条数据并动态添加到下拉框上
- 市委组织部考核项目——我对JSON的理解与应用
- 市委组织部考核项目--"加载全部项"
- 市委组织部考核项目——将Excel中的每一行数据拆成多条并依次保存到数据库中
- 市委组织部考核项目——利用EasyUi中可编辑的DataGrid控件对多行数据进行编辑并提交
- 市委组织部项目--需求分析
- 市委组织部项目--EasyUI下拉框多选
- 市委组织部项目--for循环优化
- 市委组织部项目--office文档上传后预览
- 市委组织部项目--EasyUI批量添加数据
- 市委组织部项目--下拉框简单操作
- 市委组织部项目--word上传,下载,预览,删除
- 市委组织部项目--纠正下拉框多选的错误
- 项目推动 考核挂帅
- 项目考核维度
- 控制ExpandableListView某一项点击不展开
- DM6446学习的方法,刚学习第二天
- HDU 1541 树状数组
- IE11无法显示此页的问题
- myEclipse中光标异常
- 市委组织部考核项目——问题记录
- 类图关系表示
- 老调重弹,简单问题之 i++, ++i ,你真的清楚吗?
- cmdilistener1.3
- 数列特征
- IE11免费面向广大开发者
- 学习C++的专家推荐路线
- Java语言实现支持视频点播的WEB服务器
- php webservice实战