市委组织部考核项目——问题记录

来源:互联网 发布:淘宝联盟做推广多少钱 编辑:程序博客网 时间: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.至于策略模,当一个对象有很多的行为,我们往往会想到用多重的条件语句来实现,虽然能实现,但是如果又来了好几个行为你怎么办,再原来的基础上继续加分支?这样当然可以实现,不过这样设计太过依赖对象了,此时,使用策略模式,把这些行为转移到相应的具体策略类里面,行为的增,减也就不会直接影响到对象,它是依赖接口的,也就可以避免使用难以维护的多重条件选择语句了;这种情况只是你考虑选择使用策略模式的情况之一,可能一说起策略模式大多数人首先会想到算法,不错,策略模式将每一个算法封装到具有共同接口的独立的类中,从而使得它们可以相互替换,策略模式被很多人称为"可插入式的算法" .


      以上是在项目过程中的一些问题的记录,如果有什么地方理解有误,希望得到大家的纠正.

5 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 太害羞了不敢进店买东西怎么办 收件箱邮箱邮件满了但不想删怎么办 模拟人生畅玩版任务时间过了怎么办 快递放柜子里长时间不拿怎么办 古筝的筝码序号错了怎么办? 极限竞速3地平线爆内存怎么办 车载导航安卓系统禁止装软件怎么办 在微信上买东西买到假货怎么办 想从新西兰寄红酒到家运费怎么办 新买的裤子掉色把内裤染色了怎么办 白衣服变脏变黄怎么办用英文怎么说 经常宅在家里不爱出去玩怎么办 在家里呆不住老想着往外跑怎么办 新商盟网上订烟登录密码忘了怎么办 在拼多多购物质量有问题怎么办 美图手机总弹出一键加速广告怎么办 手机看小说总是喜欢弹出广告怎么办 美团外卖商家注册门头不合格怎么办 手机一打网页就自动弹出广告怎么办 美团预定的宾馆不可取消怎么办 公积金注册时的号码忘了怎么办 苹果7基带坏了修不好怎么办 苹果手机玩终结者2卡怎么办 支付宝转账转到邮箱忘记邮箱怎么办 朋友转账到我的邮箱支付宝怎么办 苹果账号密码和手机号码忘了怎么办 网上购物付款后商家不发货怎么办 夏商国际商城买到假货怎么办 重庆时时彩突然冻结账户资金怎么办 微信安全中心打不开是白色的怎么办 在淘宝买东西说好返现不给返怎么办 联通斐讯路由器返现被骗了怎么办 消费分期后退款分期账单还在怎么办 新房装修物业电梯用不了费用怎么办 在京东拼购没有拼成已付款的怎么办 微信上买东西发的货不一样怎么办 微信买东西收到货不付款怎么办 京东商品店家待出库不发货怎么办 微信二维码付款多付了怎么办 微信二维码付款付错了怎么办 身份证被移动公司拉黑了怎么办