页面异步请求会保留原有的js内容
最近在开发前端的时候发现一个问题,这个问题应该是很多前端开发人员都容易忽视的一个问题,但却是一个很重要的问题。
就是在开发一个页面的时候,在使用某个函数时,这个函数可以正常使用,便会认为这个页面中定义或引入的js里边肯定包含有这个函数,但是事实并非如此。
如果你在开发过程中,你的页面全部都是通过异步加载进来的(一般网站的页面加载都是异步的),而自己在开发某个页面时打开过其他的页面,正好你打开过的页面中有你正在开发的这个页面要使用的函数,所以如果你在这个页面直接使用函数,然后进行测试,结果你会发现,这个函数可以正常使用,并不报错。而如果你重新刷新所有的页面,然后不要打开其他的页面,直接打开你刚开发的这个页面,页面就会出现页面异常,报没有定义有那个函数错误。
这个问题本人之前的开发中一直没有遇到过,所以,在本次开发的时候使用的一个函数并且能正常使用,本人就认为了本页面引入的js中是包含有这个函数的,让测试人员测试也没有问题,自己也就没有再去管它。
结果,这个页面在上生产一个多月之后,被发现了出来,本人当时也是一脸懵逼,最后项目组说要开会说这个问题,是要承担责任的,毕竟影响用户对这个平台的评价,本人就不得不找出问题的根本处在了什么地方了,为何自己在开发的时候没有出现,测试也没有出现,而在上生产一个多月之后出现了。
最后本人经过各层排查,发现此页面只有自己改过,所以问题一定是自己在开发过程中遗漏了什么问题。最后,自己写了几个页面和js进行了测试。发现,当一个页面通过异步加载,并覆盖掉之前页面的内容,之前的那个页面中的js其实是并没有被覆盖的,仍然存在在页面中并没有消失。所以,你如果没有经过上一个页面而直接打开这个页面就会报页面没有定义你使用的那个函数的错误
页面异步请求会保留原有的js内容的更多相关文章
- AJAX实现简单的注册页面异步请求
p { margin: 0px; padding: 0px } AJAX简介 (1)AJAX = 异步 JavaScript 和 XML. (2)AJAX 是一种用于创建快速动态网页的技术. (3)通 ...
- 微信小程序 异步请求拿数据+使用外部js库
信小程序(与js)通过requirejs引用外部js文件 var modelSearch = require('../../utils/modelSearch.js') 这是一个构建数据请求筛选条件的 ...
- javaweb局部刷新-ajax异步请求springMVC显示返回的jsp内容,代替iframe
在jsp上要引入jquery <script src="<%=request.getContextPath()%>/js/jquery_ui/jquery.js" ...
- 异步请求(ajax,http) 之 逐渐完善的大全
异步请求在我们的开发之中是经常需要学习和理解的内容,我们将会在这一篇文章中依据不同的语言和环境内容进行归类讲解. JS: ajax是我们最为常用的页面异步请求,在只需要修改部分页面内容而不需要更换全部 ...
- ajax异步请求数据
源码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...
- Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)
刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...
- js多个异步请求
一,两个(或多个)js异步并发执行,怎么在两个AJax异步操作之后执行一个新的操作 原题来自 ES6 方法 1.Promise 包装异步ajax操作,2.定义async 函数,3.用await等待pr ...
- js异步请求发展史和yield
万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现的,前端逻辑越来越复杂,导致回调函数越来越多,同时 nodejs 的流行也让 javascript 在后 ...
- Ajax:实现后台验证js实现get方式的异步请求,判断用户名是否重复
<%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...
随机推荐
- Basic Sort Algorithms
1. Bubble Sort public void bubbleSort(int[] arr) { boolean swapped = true; int j = 0; int tmp; while ...
- Nginx教程(二) Nginx虚拟主机配置
Nginx教程(二) Nginx虚拟主机配置 1 虚拟主机管理 1.1 Nginx管理虚拟主机 虚拟主机使用的是特殊的软硬件技术,它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主 ...
- 修改node来增加自定义工具命令
如何通过node创建自定义cmd命令 一.命令功能的实现 1.将自己的自定义工具的文件夹放到当前使用的 node 的安装目录下的 node_modules 文件夹下面: 2.回到node安装目录下复制 ...
- redis3.2.6 集群安装
下载 [root@localhost ~]# cd /usr/local/src/ [root@localhost src]# wget http://download.redis.io/rele ...
- 每天4亿行SQLite订单大数据测试(源码)
SQLite单表4亿订单,大数据测试 SQLite作为嵌入式数据库的翘楚,广受欢迎!新生命团队自2010年以来,投入大量精力对SQLite进行学习研究,成功应用于各系统非致命数据场合. SQLite极 ...
- Redis 小白指南(四)- 数据的持久化保存(草稿)
Redis 小白指南(四)- 数据的持久化保存 简介 因为 redis 将数据保存在内存中,很容易诱发的一个问题就是,程序崩溃或服务器重启等情况如何保证数据的正常存储. 当我们以 redis 作为主数 ...
- 使用Eclipse进行Javaweb项目开发时,如何设置外置浏览器Chrome
使用Eclipse开发Javaweb项目时,在Eclipse中显示页面不是很好,那么如何让它自动打开外置浏览器呢?操作如下
- index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined
使用 webpack 编译 Vue 项目时出现报错: index.js:13 Uncaught TypeError: Cannot read property 'split' of undefined ...
- html打造动画【系列1】- 萌萌的大白
每个人心中都有一个暖暖的大白,blingbling的大眼睛~软软的肚子~宽厚的肩膀~善良的心肠~如果可以,我愿意沦陷在大白的肚子里永远不出来,哈哈~毛球要失宠咯~ 哈哈哈 每个人都是独立的个体,大白也 ...
- 【Selenium】Selenium IDE(alt+ctrl+s)
ttp://www.yiibai.com/selenium/selenium_ide_tool_features.html 学习 Selenium IDE安装 http://seleniumh ...