zoukankan      html  css  js  c++  java
  • 新工作 Day18 周日

    早上在被窝里听《三体》,赖了一小时床,真精彩,完全停不下来的节奏。。。

    上午陪儿子去小区打羽毛球,也是戴着耳机边听边玩,儿子时不时说些什么也听不清。。。

    上一次这么入迷还是玩【电话烤箱(暂定)】,PSP上玩的,最精彩的核心部份是在出差的大巴上玩的,下了车都不愿意去客户那,走的路上都在玩。。。回来的路上接着玩。。。后来又看了一遍动漫,哪天能翻拍成电影就好了。动漫最震撼的是附加的那集,【欺骗过去的自已=欺骗全宇宙】。。。

    一直用【酷我听书】听有声小说,这APP什么都好,但没开软件时,直接插入耳机按播放键,是不会自动启动APP的。

    以前用【天天动听】是可以按播放键启动的,不知是后台长驻一个监听进程还是另外的方法,总之用360清除进程后,它还是可以通过播放键启动的。这APP其它都好,就是不显示文件名。。。只显示歌手之类的属性,导致一排下来全是一样的,根本不知道听到了第几章,虽然有自动记忆,但还是不爽。

    其它又试了几个播放器,不是监听不了播放键,就是不显示文件名,真不知这些开发者是怎么想的,网上一直都有反馈,技术上也不难实现吧,就算考虑到众口难调,加个选项让用户选择总可以吧。特别是显示文件名,好几个播放器居然都不支持,播放列表一溜下来全是一样的。。。你们测试时到底有没有用来听过电子书啊亲。。。

    还是用回【酷我听书】吧,用习惯了,要播放时手动打开一下APP就好。上个版本还劫持了锁屏界面,换上它的图片,要向右滑动解锁,还没地方修改选项。。。不过很快就修复了,更新后就正常了,估计也是反对的人多,好歹给个选项啊。

    一上午就这么交待了,下午把公司项目的【主页】统计数据弄一下吧。现在空闲时间如果没学上一些什么,就有负罪感,这是好事,也是工作上的坎坷造成的不安全感。前几年在上海混得太舒服了,完全没压力,如果那时有坚持学些什么的话,四五年下来也有相当的收获了。

    【种一棵树的最好时间是十年前,其次是现在】

    =========================

    做【首页】的业务统计,刚好多熟悉一下这套框架

    1、重置表单,使用Dom的reset(),或是$("#xxx")[0].reset(),以前都是$("#xxx").find("input").val("")之类手动清空的,碰到有其它格式还要另外处理。(以前公司那套框架,基本就不用form,连提交数据都是手动写。。。)

    2、@Html.Action(“Action”,"Controller")可以调用其它控制器,一开始以为是@Html.Action("Controller/Action")这种格式,结果不行。。。MVC还是用的少啊,现在已经熟悉多了,到过年应该就会很熟了吧。

    3、本想用ajax调数据,返回JsonResult结果,再用js赋值到页面上(以前公司就是这样做的)。后来想想还是要按MVC正规的来,建了控制器、分类视图。

    基本调好了,晚上再在控制器里把数据取一下,搜索按钮事件绑定一下就可以了。

    这套UI框架整体还可以,看源码好像是拿JQueryUI改的,然后公司一个美工同事维护改进。但有些地方不大好用:

    1、表格右侧有个偏移十几个像素的空位,据说是为了滚动条预留的,但小表格没有滚动条时,那地方就空着(而且标头还有颜色),不美观,尝试改一下公共样式,发现还有很多地方要处理,就算了。

    2、搜索栏的各搜索项宽度、高度之类有个公共样式控制,碰到不同场景,还需要自已另外写一些样式把原先的【抵消】掉,如一个地方高度错位,发现是公共样式不适合,只好把这几个设为默认值:

    .XXX ul li { height: auto; line-height: normal; overflow: initial; }

    3、表格下方的分页组件,有个参数控制其高度,要人工去调。。。本来分页组件就是在表格页面的下方嘛,为什么还要人工去调。。。有个参数,要把页面高度减去表格高度再减去搜索栏之类,要去算。比如一开始大概是150,然后页面刷新试下,看高了还是低了,再慢慢调,调到合适为止。。。为什么还用这么落后的方法。。。

    4、表格各列的宽度,要用<colgroup>来控制,直接在td上width是不行的。而且先调表头thead的colgroup,一列列设好宽度,【自动】的话就直接<col />,不能漏。调好后复制到tbody上,这样表头和内容宽度才会一致。有时调整某列宽度,就要上下都调。。。Html5几乎都不支持colgroup和col了,写着也别扭,thead和tbody各来上一段,代码显得很冗余。

    5、combobox里有参数可以设text和value,但js中没有相应方法可以得到value,项目里都是直接用text的中文值进行判断。。。在MVC里倒是有封装@Html.Combobox可以取到。如果要【只读】,没有相应的combobox属性,只有html的readonly="readonly",在【只读】时点中间的文本区还不会出来下拉框,只能点旁边的小三角。。。

    6、搜索栏是传相应字符串进去的,有注入的风险,而且还要自已在控制器里一个个判断/取值。以前项目有封装一个控件,可以把搜索栏里有值的部份拼接起来Base64后传到后台,虽然也有注入风险,好歹不用自已写代码了,而且还可以把传进去的字符串用个公共方法Replace掉一些危险SQL关键字或语句

        希望以后转成EasyUI、JqueryUI、Bootstrap、LigerUI之类的吧,项目也没什么特殊的需求,还是用大众化的标准UI好了。新员工也容易上手,不然每个新员工都要看一遍UI的源码或项目中是如何使用的,又没有相应的文档或培训,很痛苦。

    唯一比较好的就是把弹出窗、弹出框全集成在一个dialog里了。弹出窗体就是dialog.open,弹出警告/确认框就是dialog.alert、dialog.confirm,这个还比较方便。

    =====================

    项目封装了个方法,取出来的数据是List<Hashtable>,要对其用linq进行求和,折腾了一阵总算弄出来了(cases是List<Hashtable>):

    ViewData["XXX"] = cases.Sum(m => m.Cast<DictionaryEntry>()
        .Where(k => Convert.ToString(k.Key) == "XX")
        .Sum(n => Convert.ToDouble(n.Value == DBNull.Value ? 0 : n.Value)));

    1、Hashtable不能直接用Linq,要转成DictionaryEntry

    2、数据库取出来的有空值,不能直接Convert,要判断DBNull.Value

     =====================

    把【搜索】功能做完了,做了一遍就熟悉了,项目封装了一个方法,【搜索】按钮不是<input type="submit">,而是一个a标签,class带有样式,onclick调公共方法即可。

    很有成就感。本想今晚看【007】的,但两个半小时,又来不及了,看一篇短的【偷拐抢骗】,然后在床上听【三体】吧,刚好眼睛可以休息下

    ======================

    【偷拐抢骗】真看不懂。。。这么多大牌,听说还在英国票房冠军什么的。在豆瓣看了讲解,还是觉得一点都不好看,也不好笑,哪有什么幽默,完全不知所谓,一些 人/事/巧合 掺杂在一起,乱槽槽的

  • 相关阅读:
    IXmlSerializable With WCFData Transfer in Service Contracts
    Difference Between XmlSerialization and BinarySerialization
    Using XmlSerializer (using Attributes like XmlElement , XmlAttribute etc ) Data Transfer in Service Contracts
    Introducing XML Serialization
    Version Tolerant Serialization
    Which binding is bestWCF Bindings
    Data Transfer in Service Contracts
    DataContract KnownTypeData Transfer in Service Contracts
    Using the Message ClassData Transfer in Service Contracts
    DataContract POCO SupportData Transfer in Service Contracts
  • 原文地址:https://www.cnblogs.com/liuyouying/p/5154928.html
Copyright © 2011-2022 走看看