`

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

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

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

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

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

相关推荐

    ext JS集成My97DatePicker日期控件

    在进行此类集成时,需要注意的是兼容性问题,因为不同的JavaScript库可能会引发冲突。此外,良好的代码组织和模块化实践也有助于保持项目的可维护性。总的来说,了解这两个组件的工作原理以及它们如何协同工作,是...

    关于laydate.js加载laydate.css路径错误问题解决

    在本文中,我们将探讨一个关于JavaScript日期控件laydate.js在特定项目环境中遇到的问题,以及如何解决laydate.css路径加载错误。laydate.js是一款广泛应用于前端开发中的日期选择器插件,它支持包括IE6在内的多种...

    添加页面和控件事件视频教程

    5. **Page生命周期与事件顺序**: ASP.NET页面经历一系列生命周期阶段,包括初始化、加载、验证、呈现等。理解这些阶段有助于确定何时触发和处理事件。 6. **控件事件的冒泡与隧道化**: 事件有两种传播方式:冒泡...

    jquery UI Datepicker时间控件冲突问题解决

    在项目中,这两个插件可能因为加载顺序的不同或者CSS层叠(z-index)问题,导致一个日期选择器覆盖了另一个,从而产生视觉上的异常。 在这个特定问题中,开发者遇到了日期选择器的年份切换部分被遮挡的情况。这是...

    列表框控件的 插入 删除 替换

    当列表框包含大量项时,为了提高性能,可以考虑使用虚拟化技术,只在可视区域渲染项,或者利用异步加载策略分批加载数据。 总结来说,列表框控件在各种编程环境中都扮演着重要的角色,熟练掌握其插入、删除、查找...

    oracle解决浏览器冲突oajinit

    例如,调整JavaScript库的加载顺序或设置特定的浏览器策略。 10. **部署描述符修改**:对于WebLogic Server,检查并修改weblogic.xml或web.xml文件中的部署描述符,可能需要调整对特定浏览器的支持。 以上都是解决...

    extjs-3.1.0

    6. **INCLUDE_ORDER.txt**: 这个文件提供了加载ExtJS库及其相关资源的正确顺序,遵循这个顺序可以避免因资源加载顺序不当引发的问题。 7. **src目录**: 源代码目录,包含ExtJS库的所有源文件,开发者可以查看和修改...

    DotNet_面试题库

    13. Web页面的执行顺序大致为:初始化、加载事件、预呈现、呈现、卸载事件。 14. 上下文对象(HttpContext)在ASP.NET中用于封装请求和响应信息,是访问请求和响应数据的关键。 15. 转发(Transfer)是在服务器端...

    Asp.Net十大技巧,和大家分享下!

    对于`Button`、`LinkButton`、`ImageButton`等控件,当`AutoPostBack`属性设置为`true`时,每次用户与控件交互都会立即引发服务器端的事件处理,而不仅仅是页面加载时才触发。 例如,对于`CheckBox`和`CheckBoxList...

    asp.net后台如何动态添加JS文件和css文件的引用

    在***网站开发中,通常我们会静态地在页面的头部或底部引入JavaScript和CSS文件,使用和标签。然而在某些情况下,我们需要根据...在实际应用中,开发者需要仔细考虑资源加载的顺序和位置,避免可能的加载冲突和错误。

    2021-2022计算机二级等级考试试题及答案No.9628.docx

    21. 加载页面时,Page 类的事件发生顺序为: - Page_PreInit - MasterPage_Init - Page_Init - Page_InitComplete - Page_PreLoad - Page_Load - MasterPage_Load - 然后是其他的页面生命周期事件,如 Render 和 ...

    《前端手册》

    - 如《JavaScript高级程序设计》、《深入理解Node.js》等,提供深度技术知识。 3. **在线课程与社区**: - 利用MOOC平台学习新技术。 - 加入GitHub、Stack Overflow等社区参与讨论和技术交流。 #### 七、前端...

    最全前端面试题-3(html篇-上百篇题集整理1个月)

    与HTML相比,XHTML要求所有元素必须闭合,这在某些情况下可能引发问题。 6. **多语言支持**:使用`<html lang="">`指定页面语言,可以创建多语言版本的网站,通过链接不同的语言版本提供切换选项。 7. **data-*...

    ASP.net基础知识之常见错误分析

    在使用`LoadControl`加载控件时,如果遇到控件无法识别页面属性的问题,可以尝试在页面的继承基类中进行相应的修改。例如,可以通过扩展`Page`类来解决这个问题。 #### 十五、存储过程的细节调整 在编写存储过程时...

    .net 面试题 大全

    每个事件都有特定的职责,例如初始化事件用于设置控件属性,加载事件用于处理用户输入,预呈现事件用于更新控件属性,呈现事件用于将页面输出到客户端,卸载事件则在页面从内存中移除时触发。 3. **接口与抽象类的...

    timer组件显示图片

    然后,在窗体或控件上添加一个显示图片的控件,如PictureBox。 以下是实现这个功能的基本步骤: 1. **创建Timer实例**:在代码中创建一个`Timer`对象,设置其`Interval`属性,该属性表示间隔多少毫秒触发一次`Tick...

    jQuery EasyUI tree 使用拖拽时遇到的错误小结

    jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列用户界面组件,例如对话框、表格、菜单、树形控件等,以帮助开发者更快地构建Web界面。其中tree组件用于展示层级化的数据,常用于显示组织结构、文件夹目录...

    ACCP5.0 内部测试

    - `font-family` 属性允许指定一种或多种字体,浏览器会尝试按顺序加载这些字体,如果未找到指定字体,则会回退到默认字体。 - `color` 可以使用预定义颜色名称、十六进制、RGB 或 HSL 值来设置。 - `text-align`...

    2021-2022计算机二级等级考试试题及答案No.14296.docx

    - 通常情况下,将 JavaScript 代码放在 `<head>` 标签内可以使页面加载更快。 **答案**:C. `<head>` 段 ### 9. 计算机基本原理 **知识点概述**: - 微型计算机的基本运算或判断操作由 CPU 执行。 - CPU 通过执行...

Global site tag (gtag.js) - Google Analytics