js控件加载顺序引发的问题

问题背景:
项目需要引入一个密码控件,该密码控件计算密文值需要一串随机数,在获取密文值时使用(由开发者调用控件相关方法)。
问题说明:
首先我的做法如下:
1、js初始化控件基本信息。
2、window.onload方法中通过ajax调用后端服务获取随机数,获取成功后给控件设置随机数(用于加密密码)。
3、用户点击提交按钮时调用控件加密方法来获取密文。

问题表现如下:
1、无论我怎么设置随机数,控件加密出来结果总是同一个值,而且后台反解再进行md5处理得到的结果也跟原生的md5值不同。
2、而另外一个同事给出的demo得到的值确实正确的。

最终咨询了一个同事,经过各种调试,最终给出了建议,js是脚本语言,逐行执行,而设置随机数前还调用了几个方法,最终研究源码发现,是前几个方法未执行完就进行设置随机数其实是无效,因为设置了也会被空值覆盖掉,至此,发现了问题原因所在。

所以,js脚本语言的特性再次警醒了我(因为很久没用了的缘故),也希望这篇博文能帮助到遇到类似问题的同行。

猜你喜欢

转载自xiaoyun34286136.iteye.com/blog/2308763