zhtimer吧 关注:32贴子:459
  • 22回复贴,共1

[技术向]开发中遇到的关于编程上的坑

只看楼主收藏回复

这个帖子用来记录开发zhtimer过程中遇到的一些编程问题,以及对应的解决方法,作为记录和纪念


IP属地:湖北1楼2015-10-17 00:51回复
    今晚遇到的坑,花了接近3个小时
    jquery 中数组的复制 有坑,其实不是复制,只是一个引用
    比如
    a = [1,2,3,4,5];
    var b = a;
    b.reverse();
    -----------------
    console 结果
    b = [5,4,3,2,1]
    a= [5,4,3,2,1]
    发现原始数组也会跟着变化,所以当你要给一个数组倒序后复制给新的数组
    不能用
    var newArray = Array.reverse();
    因为原始数组也会同时被修改
    ----------
    解决方法
    才用深复制:
    Ext的两种克隆的方法:
    可以克隆对象、数据等:var newJson = Ext.clone(json);
    只能克隆数组:var newJson = Ext.Array.clone(json);
    JQuery的方法:
    深复制【可以迭代】:var newJson = jQuery.extend(true,{}, json);
    浅复制【不能迭代】:var newJson = jQuery.extend({}, json);
    var newJson = $.map(json,function (n) { return n; });
    数组的克隆方法:
    var newJson = json.concat();
    var newJson = json.splice(0);
    此上几种方法都是复制一个新的对象或者数组,但是如果直接通过parent【iframe情况】的方式去父窗口的对象的时候会有问题【存在引用关系】,需要注意,可以把取的方式改成传递数据的方式。


    IP属地:湖北2楼2015-10-17 00:58
    回复
      看不懂路过


      来自Android客户端3楼2015-10-17 21:07
      回复
        django 中数据库查询的语句
        参考http://www.cnblogs.com/qinfengxiaoyue/p/4027208.html
        scrs = ScrambleDayCountInfo.objects.filter(unionid=unionid,second_select=item,total_num__gt=0).order_by('-created_at')
        里面的
        total_num__gt=0 表示total_num > 0
        2.条件选取querySet的时候,filter表示=,exclude表示!=。
        querySet.distinct() 去重复
        __exact 精确等于 like 'aaa'
        __iexact 精确等于 忽略大小写 ilike 'aaa'
        __contains 包含 like '%aaa%'
        __icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。
        __gt 大于
        __gte 大于等于
        __lt 小于
        __lte 小于等于
        __in 存在于一个list范围内
        __startswith 以...开头
        __istartswith 以...开头 忽略大小写
        __endswith 以...结尾
        __iendswith 以...结尾,忽略大小写
        __range 在...范围内
        __year 日期字段的年份
        __month 日期字段的月份
        __day 日期字段的日
        __isnull=True/False
        例子:
        >> q1 = Entry.objects.filter(headline__startswith="What")
        >> q2 = q1.exclude(pub_date__gte=datetime.date.today())
        >> q3 = q1.filter(pub_date__gte=datetime.date.today())
        >>> q = q.filter(pub_date__lte=datetime.date.today())
        >>> q = q.exclude(body_text__icontains="food")
        即q1.filter(pub_date__gte=datetime.date.today())表示为时间>=now,q1.exclude(pub_date__gte=datetime.date.today())表示为<=now


        IP属地:湖北4楼2015-11-08 02:02
        回复
          nickname = upp.nickname or sui.nick_name
          截图写的很好


          IP属地:湖北5楼2015-11-08 02:03
          回复
            Echarts 的 隐藏方法
            为了实现更高级的功能和需求定制,ECharts团队做了个艰难的决定,开放组件和图表实例接口。这些组件和图表实例都被挂载到init所得到的实例上(如myChart),分别存放在chart和component下,如可以通过myChart.chart.map得到当前地图实例并可以读取并调用里面的各种属性和方法。
            例如要知道一张表里面的数据可以用
            yourchart.component.xAxis.option


            IP属地:湖北6楼2015-11-08 04:36
            回复
              看到zh那么孤单轻插一楼


              IP属地:江苏来自iPhone客户端7楼2015-11-09 22:52
              回复
                2.查看证书
                用 -list指令 或者用 -list -v
                keytool -list -v -keystore 你的.keystore

                重要的就是这个MD5(微信登陆需要这个参数)
                3.生成apk
                4.用jarsigner签名
                jarsigner -verbose -keystore 你的.keystore -signedjar test_signed.apk test.apk 别名
                # test_signed.apk是签名之后的文件
                # test.apk是需要签名的文件


                IP属地:湖北8楼2015-11-14 05:10
                收起回复
                  来说说安卓应用签名
                  使用工具
                  jdk 6的2 个工具 keytool.exe and jarsigner.exe (jdk8 并没有jarsigner,所以下低版本的)
                  步骤
                  1.生成证书
                  2.查看证书
                  3.生成未签名apk
                  4.签名apk
                  1. 用keytool生成证书
                  具体指令:
                  keytool -genkey -alias 你的别称-keyalg RSA -validity 365 -keystore 你的.keystore
                  #说明:
                  # -genkey 产生密钥
                  # -alias mykey 别名 mykey
                  # -keyalg RSA 使用RSA算法对签名加密
                  # -validity 40000 有效期限4000天
                  # -keystore demo.keystore
                  然后就可以生成一个.keystore的证书


                  IP属地:湖北9楼2015-11-14 05:10
                  回复
                    使用了一个css卡片特效 jQuery.flipout_cards
                    https://github.com/peachananr/flipout_cards
                    1.经过研究发现这个插件存在bug,添加多个卡片点时候,展开的栏目会迭代触发,检查发现是他的js写的有问题,修改了一小处。(话费接近1天才找出来)
                    2.这里触发区域过大,通过增加css 的class 解决
                    3. sort()函数实现排序,在后面加一个b-a 函数
                    total_num_sorted.sort(function (a, b) {
                    return b - a;
                    });
                    4.通过ajax异步加载之后的卡片,动画丢失,明天继续研究原因


                    IP属地:湖北10楼2015-11-24 03:40
                    回复
                      看得懂jQuery,其他不懂,毕竟只会JAVA


                      IP属地:四川来自Android客户端11楼2015-11-28 11:40
                      收起回复
                        python 定义 列表 list
                        比如二维数组,用list来定义
                        错误用法
                        123456 #创建一个宽度为3,高度为4的数组#[[0,0,0], # [0,0,0],# [0,0,0],# [0,0,0]]myList = [[0] * 3] * 4
                        但是当操作myList[0][1] = 1时,发现整个第二列都被赋值,变成
                        [[0,1,0],
                        [0,1,0],
                        [0,1,0],
                        [0,1,0]]
                        * 为浅拷贝
                        正确用法
                        lists = [[] for i in range(3)]
                        初始化可以用
                        list = [[0 for col in range(9)] for row in range(9)]


                        IP属地:湖北12楼2015-12-03 00:06
                        回复
                          完成一次后用ajax提交到数据库后,可以用jQuery刷新一下整个页面,因为右边的排名下拉框需要onchange后才会刷新,用jQuery刷新一下可以提高用户体验


                          IP属地:四川来自Android客户端13楼2015-12-03 00:30
                          收起回复
                            另外正下方隐藏的div在鼠标移入后会显示,似乎是定位的问题,我的电脑屏幕比较小,那个div小时出来后会挡住下方的四个成绩选项,+2 和 dnf勉强能点,下面两个就完全挡住了,而电脑屏幕大的话就不会有这个问题


                            IP属地:四川来自Android客户端14楼2015-12-03 00:35
                            收起回复
                              django 多个app分别连接不同数据库,一直没有调试成功,暂时放弃设置不同数据库


                              IP属地:湖北15楼2015-12-17 02:56
                              回复