最近在开发前端的时候发现一个问题,这个问题应该是很多前端开发人员都容易忽视的一个问题,但却是一个很重要的问题。

就是在开发一个页面的时候,在使用某个函数时,这个函数可以正常使用,便会认为这个页面中定义或引入的js里边肯定包含有这个函数,但是事实并非如此。

如果你在开发过程中,你的页面全部都是通过异步加载进来的(一般网站的页面加载都是异步的),而自己在开发某个页面时打开过其他的页面,正好你打开过的页面中有你正在开发的这个页面要使用的函数,所以如果你在这个页面直接使用函数,然后进行测试,结果你会发现,这个函数可以正常使用,并不报错。而如果你重新刷新所有的页面,然后不要打开其他的页面,直接打开你刚开发的这个页面,页面就会出现页面异常,报没有定义有那个函数错误。

这个问题本人之前的开发中一直没有遇到过,所以,在本次开发的时候使用的一个函数并且能正常使用,本人就认为了本页面引入的js中是包含有这个函数的,让测试人员测试也没有问题,自己也就没有再去管它。

结果,这个页面在上生产一个多月之后,被发现了出来,本人当时也是一脸懵逼,最后项目组说要开会说这个问题,是要承担责任的,毕竟影响用户对这个平台的评价,本人就不得不找出问题的根本处在了什么地方了,为何自己在开发的时候没有出现,测试也没有出现,而在上生产一个多月之后出现了。

最后本人经过各层排查,发现此页面只有自己改过,所以问题一定是自己在开发过程中遗漏了什么问题。最后,自己写了几个页面和js进行了测试。发现,当一个页面通过异步加载,并覆盖掉之前页面的内容,之前的那个页面中的js其实是并没有被覆盖的,仍然存在在页面中并没有消失。所以,你如果没有经过上一个页面而直接打开这个页面就会报页面没有定义你使用的那个函数的错误

页面异步请求会保留原有的js内容的更多相关文章

  1. AJAX实现简单的注册页面异步请求

    p { margin: 0px; padding: 0px } AJAX简介 (1)AJAX = 异步 JavaScript 和 XML. (2)AJAX 是一种用于创建快速动态网页的技术. (3)通 ...

  2. 微信小程序 异步请求拿数据+使用外部js库

    信小程序(与js)通过requirejs引用外部js文件 var modelSearch = require('../../utils/modelSearch.js') 这是一个构建数据请求筛选条件的 ...

  3. javaweb局部刷新-ajax异步请求springMVC显示返回的jsp内容,代替iframe

    在jsp上要引入jquery <script src="<%=request.getContextPath()%>/js/jquery_ui/jquery.js" ...

  4. 异步请求(ajax,http) 之 逐渐完善的大全

    异步请求在我们的开发之中是经常需要学习和理解的内容,我们将会在这一篇文章中依据不同的语言和环境内容进行归类讲解. JS: ajax是我们最为常用的页面异步请求,在只需要修改部分页面内容而不需要更换全部 ...

  5. ajax异步请求数据

    源码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  6. Angular JS 学习笔记(自定义服务:factory,Promise 模式异步请求查询:$http,过滤器用法filter,指令:directive)

    刚学没多久,作了一个小项目APP,微信企业号开发与微信服务号的开发,使用的是AngularJS开发,目前项目1.0版本已经完结,但是项目纯粹为了赶工,并没有发挥AngularJS的最大作用,这几天项目 ...

  7. js多个异步请求

    一,两个(或多个)js异步并发执行,怎么在两个AJax异步操作之后执行一个新的操作 原题来自 ES6 方法 1.Promise 包装异步ajax操作,2.定义async 函数,3.用await等待pr ...

  8. js异步请求发展史和yield

    万恶的回调 对前端工程师来说,异步回调是再熟悉不过了,浏览器中的各种交互逻辑都是通过事件回调实现的,前端逻辑越来越复杂,导致回调函数越来越多,同时 nodejs 的流行也让 javascript 在后 ...

  9. Ajax:实现后台验证js实现get方式的异步请求,判断用户名是否重复

    <%@ page contentType="text/html;charset=UTF-8" language="java" %><html& ...

随机推荐

  1. /proc/kcore失效,调试其文件系统相关模块,使重新正常工作

    为分析内核,在有限的机器上用虚拟机装了CentOS.6.9.i386.minimal,重新编译了3.19.8内核并克隆.当使用/proc/kcore进行内核动态映像调试时,发现与kgdb远程调试端读到 ...

  2. Fast data loading from files to R

    Recently we were building a Shiny App in which we had to load data from a very large dataframe. It w ...

  3. 走进JavaScript——重拾对象

    创建对象 Object构造器的参数如果为空或null.undefined将返回一个空的Object对象,如果为其他值则调用相应的构造器,如 new Object() // Object {} new ...

  4. CTF 和 PHP ,数据库

    引言 接触CTF 差不多一个月了,网上题目刷得也差不多,做了不少笔记,老想总结一下.当然,这种文章网上多得是. 正文笔记 少不了弱类型,松散比较,放一张图 2.  mysql_real_escape_ ...

  5. Spring component-scan 的逻辑 、单例模式下多实例问题、事务失效

    原创内容,转发请保留:http://www.cnblogs.com/iceJava/p/6930118.html,谢谢 之前遇到该问题,今天查看了下 spring 4.x 的代码 一,先理解下 con ...

  6. Swoole笔记(三)

    WebSocket 使用Swoole可以很简单的搭建异步非阻塞多进程的WebSocket服务器. WebSocket服务器 <?php $server = new swoole_websocke ...

  7. Spring+SpringMVC+MyBatis深入学习及搭建(六)——MyBatis关联查询

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/6923464.html 前面有将到:Spring+SpringMVC+MyBatis深入学习及搭建(五)--动 ...

  8. python中xrange用法分析

    本文实例讲述了python中xrange用法.分享给大家供大家参考.具体如下: 先来看如下示例: >>> x=xrange(0,8) >>> print x xra ...

  9. 跨域请求,jsonp

    其实跨域请求,只需要在请求的url后面加上callback=?即可. 提供以下两种获取跨域的ajax的写法,都是基于jQuery.都已经成功使用,兼容做到ie7,(ie6未测试);案例地址来自豆瓣开放 ...

  10. window maven批量删除.lastUpdated文件

    当下载网络上的jar包 网络不通 中途中断 会产生.lastUpdated,maven就不在从网上下载jar包了 很烦 ~~~ 执行下面的批处理程序即可 @echo off set REPOSITOR ...