4-10总结

导致错误的原因
1.js 出现报错 不能发现某某属性
书写的顺序 多个有关系的js文件加载可能是有顺序的。如果加载顺序不正确,可能导致对象不能找到
对象属性不能找到的错误。

2.网页崩溃 整个.net core 网页都报错。具体原因已经不得而知,一般很少出现这种错误。
后来发现是 ajax参数出现undefined,修改之后问题解决。

3.插件执行过程出现长度或者宽度为零,
其实就是对一个插件进行多次渲染和取数据,比如多次ajax取数据,多次设置css,多次添加动态添加元素。
为了界面友好我做了一个loading操作,执行之前,隐藏元素,之后之后,再把加载完的元素进行展示。
但是中途发现渲染操作发生错误。某个元素的宽度或者高度是0,导致后面的错误。
由于这个过程不是一个真正的插件的渲染,而是页面元素和js交互渲染的结果。

由于使用了display:none这样的效果,元素既看不见,本身也不占据空间。结果导致以上的错误。
把display:none 修改成类似visible:false即可,此时元素只是不可见到,但是空间上仍然占据长宽,
不影响元素渲染。

3.出现错误
    功能不正常 结果发现是数据类型的问题。字符串和数字加减得到的是非数字的结果NaN,为了表面问题。
    把数据类型进行转换 parseInt() 转成整数。
4.元素是否存在
    使用jquery选择器进行包裹,对结果进行获取length属性值,若干值为了0,则元素不存在

5.js环境复杂 有时出现多层函数嵌套的结果,此时this的值比较负载
使用 var tmp = this; 此时可以在下一次使用this的值。

6.sql 表起了别名之后select 后面和where 后面都需要使用别名进行索引,否则报错。

比如select user.userid from user a where user.id=9

表user使用别名a,则select 和where后面的列只能是a.userid,否则报错

7.jquery-1.12.4.js:9748 Uncaught SyntaxError: Unexpected end of input
不能捕捉的语法错误。
使用ajax接受信息的时候,我们往往会把信息封装成对象。
比如{res:1} 我们console.log(data.res)
当发送错误的时候,发送的是'',空字符串,json对于空字符串是无法解析的。我们仍然按照data.res的形式
然后导致js的解析错误。所以对于ajax返回的json信息,无论正确还是错误,采用统一的接口和格式。
这样便于指导服务器发送的错误,也避免js解析的错误。

8.比如js报错vm之类的也是js对数据的解析有问题,比如json对象的解析和反解析。

JSON.parse和JSON.stringify,如果json的数据格式是错误的都是导致错误。

猜你喜欢

转载自blog.csdn.net/MannMann/article/details/89182124