• 2015年创业中遇到的技术问题:51-60


    51.FastJSON序列化。
    fastjson 转换内嵌json对象Object{"$ref":"$.rows[1].xxxx"}怎么在前台解析。

    原来的方法:
    JSONObject jsonObject;
    jsonObject.toJSONString();

    现在的方法:
    JSON.toJSONString(o,SerializerFeature.DisableCircularReferenceDetect);


    52.安全问题。
    程序漏洞,查询多余的信息。

    正确的写法:select * from loan_comment where lid =#{lid}
    可能错误的写法:而不是 select * from loan_comment where 1=1
    <if lid != null>
      and lid = #{lid}
    </if>(这种写法,不适合从外界传入lid,因为lid可能没有传入,从而导致可以查询出所有的评论。
    这种写法,适合后台程序,一定传入lid的情况)

    类似的还有,查询用户等信息JSON请求,只需要查询必要的字段信息。用户密码,是绝对不能通过JSON看到的。

    53.jquery官方推荐用on绑定事件
    上次,做前端的同事看了我的代码,用的是bind方法,他建议用on。
    刚刚,又看了bind,就百度了on和bind了区别,发现官方是推荐用on的。
    jquery1.7推荐。

    54.ArtDialog对话框用法。
    先调用close,再调用remove才彻底关闭了对话框。
    d.close().remove();

    55.妈个蛋啊,巨大的失误。
    a页面,include包含了b页面。
    a和b都引入了相同的js文件。
    怪不得,每次弹出对话框,得“点击两次关闭”才行。
    自己把自己坑了,在通过浏览器查看源码的时候,发现了这个严重的问题。

    56.同样的问题,又纠结了几分钟。
    给超链接a绑定事件,
    <a href="javascript:;" onclick="remove()">remove</a>
    remove貌似是JS中的保留字。

    57.jquery获得checkbox是否选中。
    JS推荐方式:
    //var test = document.getElementById("usescore").checked;
         
    Jquery推荐方式:console.log($("#usescore").is(":checked"));

    还有个奇葩的问题,checkbox选中之后,通过chrome查看元素,没有及时生成checked属性。


    58.JS和CSS版本与缓存。
    JS带上版本号。
    Freemarker定义变量version=20130323
    JS定义 fupage.js?version=${20130323}

    59.JS逻辑bug。
    this.isTable = options.isTable || true;// 默认是table
    本意:如果isTable没有配置,默认为true。
    结果,isTable手动配置为false,仍然为true。

    修改为:
    // 默认是table
    if( options.isTable==undefined){
    this.isTable = true;
    }else{
    this.isTable = options.isTable;
    }

    60.fupage增加加载错误提示功能。
    之前的fupage如果,服务器出错,或者网络异常,会一致提示“玩命加载中的动画效果”。
    现在改了,如果加载成功,renderOk为true。
    否则,5秒后,提示“服务器繁忙,请稍后再试”。
    setTimeout(function() {
    if (!renderOk) {
    busyTip(that.bodyHolder, that.isTable);
    }
    }, 5000);

    妈蛋,又发现1个问题。
    if (isTable) {
    // 偷懒,一般表格不会超过20列,设置为20,横跨所有列
    loadingDiv = "<tr style='text-align:center;'><td colspan=20>";
    } else {
    loadingDiv = "<div style='text-align:center;' >"
    }
    无论是普通的表格,还是DIV,记得加上“style='text-align:center;'”,保证动画效果居中显示,看着舒服。
  • 相关阅读:
    5.搜索-dfs、回溯、bfs
    4.排序算法
    3.二分查找
    2.双指针
    1.贪心算法
    【目录】leetcode刷题
    深度学习的优化与正则化
    什么是深度学习
    循环神经网络
    Failed to execute 'index' on 'IDBObjectStore': The specified index was not found.
  • 原文地址:https://www.cnblogs.com/qitian1/p/6462811.html
Copyright © 2020-2023  润新知