`
- 浏览:
148827 次
- 性别:
- 来自:
上海
-
问题背景:
项目需要引入一个密码控件,该密码控件计算密文值需要一串随机数,在获取密文值时使用(由开发者调用控件相关方法)。
问题说明:
首先我的做法如下:
1、js初始化控件基本信息。
2、window.onload方法中通过ajax调用后端服务获取随机数,获取成功后给控件设置随机数(用于加密密码)。
3、用户点击提交按钮时调用控件加密方法来获取密文。
问题表现如下:
1、无论我怎么设置随机数,控件加密出来结果总是同一个值,而且后台反解再进行md5处理得到的结果也跟原生的md5值不同。
2、而另外一个同事给出的demo得到的值确实正确的。
最终咨询了一个同事,经过各种调试,最终给出了建议,js是脚本语言,逐行执行,而设置随机数前还调用了几个方法,最终研究源码发现,是前几个方法未执行完就进行设置随机数其实是无效,因为设置了也会被空值覆盖掉,至此,发现了问题原因所在。
所以,js脚本语言的特性再次警醒了我(因为很久没用了的缘故),也希望这篇博文能帮助到遇到类似问题的同行。
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在进行此类集成时,需要注意的是兼容性问题,因为不同的JavaScript库可能会引发冲突。此外,良好的代码组织和模块化实践也有助于保持项目的可维护性。总的来说,了解这两个组件的工作原理以及它们如何协同工作,是...
在本文中,我们将探讨一个关于JavaScript日期控件laydate.js在特定项目环境中遇到的问题,以及如何解决laydate.css路径加载错误。laydate.js是一款广泛应用于前端开发中的日期选择器插件,它支持包括IE6在内的多种...
5. **Page生命周期与事件顺序**: ASP.NET页面经历一系列生命周期阶段,包括初始化、加载、验证、呈现等。理解这些阶段有助于确定何时触发和处理事件。 6. **控件事件的冒泡与隧道化**: 事件有两种传播方式:冒泡...
在项目中,这两个插件可能因为加载顺序的不同或者CSS层叠(z-index)问题,导致一个日期选择器覆盖了另一个,从而产生视觉上的异常。 在这个特定问题中,开发者遇到了日期选择器的年份切换部分被遮挡的情况。这是...
当列表框包含大量项时,为了提高性能,可以考虑使用虚拟化技术,只在可视区域渲染项,或者利用异步加载策略分批加载数据。 总结来说,列表框控件在各种编程环境中都扮演着重要的角色,熟练掌握其插入、删除、查找...
例如,调整JavaScript库的加载顺序或设置特定的浏览器策略。 10. **部署描述符修改**:对于WebLogic Server,检查并修改weblogic.xml或web.xml文件中的部署描述符,可能需要调整对特定浏览器的支持。 以上都是解决...
6. **INCLUDE_ORDER.txt**: 这个文件提供了加载ExtJS库及其相关资源的正确顺序,遵循这个顺序可以避免因资源加载顺序不当引发的问题。 7. **src目录**: 源代码目录,包含ExtJS库的所有源文件,开发者可以查看和修改...
13. Web页面的执行顺序大致为:初始化、加载事件、预呈现、呈现、卸载事件。 14. 上下文对象(HttpContext)在ASP.NET中用于封装请求和响应信息,是访问请求和响应数据的关键。 15. 转发(Transfer)是在服务器端...
对于`Button`、`LinkButton`、`ImageButton`等控件,当`AutoPostBack`属性设置为`true`时,每次用户与控件交互都会立即引发服务器端的事件处理,而不仅仅是页面加载时才触发。 例如,对于`CheckBox`和`CheckBoxList...
在***网站开发中,通常我们会静态地在页面的头部或底部引入JavaScript和CSS文件,使用和标签。然而在某些情况下,我们需要根据...在实际应用中,开发者需要仔细考虑资源加载的顺序和位置,避免可能的加载冲突和错误。
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等社区参与讨论和技术交流。 #### 七、前端...
与HTML相比,XHTML要求所有元素必须闭合,这在某些情况下可能引发问题。 6. **多语言支持**:使用`<html lang="">`指定页面语言,可以创建多语言版本的网站,通过链接不同的语言版本提供切换选项。 7. **data-*...
在使用`LoadControl`加载控件时,如果遇到控件无法识别页面属性的问题,可以尝试在页面的继承基类中进行相应的修改。例如,可以通过扩展`Page`类来解决这个问题。 #### 十五、存储过程的细节调整 在编写存储过程时...
每个事件都有特定的职责,例如初始化事件用于设置控件属性,加载事件用于处理用户输入,预呈现事件用于更新控件属性,呈现事件用于将页面输出到客户端,卸载事件则在页面从内存中移除时触发。 3. **接口与抽象类的...
然后,在窗体或控件上添加一个显示图片的控件,如PictureBox。 以下是实现这个功能的基本步骤: 1. **创建Timer实例**:在代码中创建一个`Timer`对象,设置其`Interval`属性,该属性表示间隔多少毫秒触发一次`Tick...
- **引发事件**:通过+=和-=操作符订阅和取消订阅事件。 - **订阅事件**:通过+=操作符将事件处理器附加到事件上。 **3.11 类命名** - **命名空间的命名**:通常采用逆域名形式。 - **类的命名原则**:首字母大写...
jQuery EasyUI是一个基于jQuery的前端框架,它提供了一系列用户界面组件,例如对话框、表格、菜单、树形控件等,以帮助开发者更快地构建Web界面。其中tree组件用于展示层级化的数据,常用于显示组织结构、文件夹目录...
- `font-family` 属性允许指定一种或多种字体,浏览器会尝试按顺序加载这些字体,如果未找到指定字体,则会回退到默认字体。 - `color` 可以使用预定义颜色名称、十六进制、RGB 或 HSL 值来设置。 - `text-align`...
- 通常情况下,将 JavaScript 代码放在 `<head>` 标签内可以使页面加载更快。 **答案**:C. `<head>` 段 ### 9. 计算机基本原理 **知识点概述**: - 微型计算机的基本运算或判断操作由 CPU 执行。 - CPU 通过执行...