精华内容
下载资源
问答
  • 页面跳转window.close()不能关闭页面

    千次阅读 2018-10-25 17:09:21
    但是跳转过来之后,提交数据成功需要5秒之后自动关闭页面 踩的问题 通关链接跳转过来,在两种情况下是关闭不了页面 1: 大家都喜欢用的控制台,打开的时候,控制台会报出一个警告Scripts may close only the windows ...

    欢迎大家,本人第一篇文章

    文章背景,做一个h5页面,嵌入到别人的项目中,通过跳转链接地址跳转到,我的h5中。但是跳转过来之后,提交数据成功需要5秒之后自动关闭页面

    踩的问题

    通关链接跳转过来,在两种情况下是关闭不了页面
    1: 大家都喜欢用的控制台,打开的时候,控制台会报出一个警告Scripts may close only the windows that were opened by it.意思是,不认为这个页面是它自己打开的,所以它不关闭。
    2: 跳转过了之后一般会带有参数,测试的时候通常修改参数看,数据有没有存起来,这个时候更改了url ,执行window.close(),的时候也不会关闭,会报出一样的警告。
    3: 希望可以帮助到大家

    展开全文
  • 使用jquery+ajax实现:修改页面内容,延迟传输到后台进行保存,并在刷新或关闭页面时,及时保存数据。

    最近做个人项目的时候,有一个需求:用户在页面进行各种编辑操作,但是却不必显示的保存修改,下次打开页面时依然可以看到修改后的内容。
    看到这个需求第一反应就是,前端无感知,后端自动保存修改。具体怎么做呢?我的思路是:
    1、在前端有修改时,写一个jquery函数(命名为:storeChange)——通过ajax将修改的内容传输到后端,由后端进行操作,比如保存数据库等。下次访问时,从数据库读取数据。
    2、为了防止用户在刷新/关闭页面不丢失数据,因此需要通过jquery在这两个事件的时候调用storeChange函数。

    第一个版本代码如下:

    //页面关闭时调用
    $(window).unload(function()
    {
        storeChange();
    });
    
    //页面刷新时调用
    $(window).on('beforeunload', function(event) {
        storeChange();
    });
    
    //前端页面内容修改触发
    function haveModified()
    {
        //做一些事情
    
        storeChange();
    } 
    
    function storeChange()
    {
        //做一些事情
    
        $.ajax({
            type:"POST",
            dataType:"json",
            data:{projectId:projectId,projectLists:arrProjectNodes},
            url:'Project/Project/modifyProject',
            success:function (data) {
                if (data.errno == 0) {
                    //do something 
                } else {
                    console.log('there are some errors in project.js:storeChange ajax' + data.errno + ': ' + data.msg);
                }
            },
            error:function (er) {
                console.log('some error in project.js:storeChange ajax');
            }
        });
    }

    但是经检验这个版本有诸多问题:
    第一、也是最严重的就是在刷新和关闭页面的时候,经常丢失数据(chrome)甚至部分浏览器完全不起作用(遨游-极速模式,兼容模式未试,这里不是黑遨游浏览器,本人是遨游浏览器的忠实用户,从初中用到现在,十多年了,个人感觉还是非常好用的);
    第二、如果操作非常频繁,会频繁调用后端接口,浪费资源、加大后端压力。

    因此针对这两个问题进行解决,方案如下:
    针对第一个问题:
    【原因】
    由于ajax默认是异步调用,这样就有一个问题:document的内容是先被销毁,还是先被传输到后端?如果是后者则符合项目需求,而如果是前者就会出现问题。
    【解决方案】
    将刷新和关闭页面时调用的storeChange函数中的ajax改为同步方式。

    针对第二个问题:
    【原因】
    每一个修改(会点击一些按钮等进行新增、删除、编辑等)意味着监听修改的函数都会被调用。
    【解决方案(前端)】
    设置定时器,默认每过10秒调用一次storeChange函数来异步请求后端接口,这样可以减少请求次数,而且对于覆盖型(后面的修改会将前面的修改覆盖掉,实际上只保存后面的修改即可)的编辑,效果最好。
    【解决方案(后端)】
    这里就不具体讨论后端的解决方案了,大体思路就是缓存/消息队列等。本文只看前端解决方案。
    【具体实现】
    上述前端的解决方案并不完整,单纯使用定时器不能满足我们的需求,因为多次修改(10秒内)会产生多个定时器,因此需要设置一个cookie来记录是否被修改,如果被修改,清除上一次的定时器,重新计时。(提醒,使用cookie需要引入jquery对应的文件)

    针对以上两个问题,修改后的代码如下:

    //页面关闭时调用
    $(window).unload(function()
    {
        storeChangeRealTime();
    });
    
    //页面刷新时调用
    $(window).on('beforeunload', function(event) {
        storeChangeRealTime();
    });
    
    //前端页面内容修改触发
    var timerId = null;//记录定时器名称
    function haveModified()
    {
        //做一些事情
        $.cookie('projectlist_modify_flag', 1);//重新设置cookie,1表示:有修改
        //定时器
        clearTimeout(timerId);//清除之前的定时器(为了重新计时,否则会有多个定时器同时进行,传递多次数据)
        timerId = setTimeout(storeChangeDelay, 10000);//设置定时器
    } 
    
    function storeChangeDelay()
    {
        //做一些事情
    
        $.ajax({
            type:"POST",
            dataType:"json",
            data:{projectId:projectId,projectLists:arrProjectNodes},
            url:'Project/Project/modifyProject',
            success:function (data) {
                if (data.errno == 0) {
                    $.cookie('projectlist_modify_flag', 0);//修改的内容已经保存,将该cookie置为0
                } else {
                    console.log('there are some errors in project.js:storeChange ajax' + data.errno + ': ' + data.msg);
                }
            },
            error:function (er) {
                console.log('some error in project.js:storeChange ajax');
            }
        });
    }
    
    function storeChangeRealTime()
    {
        //做一些事情
    
        $.ajax({
            async:false,//这是与storeChangeDelay不同的地方,表示使用同步方式传输数据
            type:"POST",
            dataType:"json",
            data:{projectId:projectId,projectLists:arrProjectNodes},
            url:'Project/Project/modifyProject',
            success:function (data) {
                if (data.errno == 0) {
                    $.cookie('projectlist_modify_flag', 0);//修改的内容已经保存,将该cookie置为0
                } else {
                    console.log('there are some errors in project.js:storeChange ajax' + data.errno + ': ' + data.msg);
                }
            },
            error:function (er) {
                console.log('some error in project.js:storeChange ajax');
            }
        });
    }

    代码是精简过的,只是提供个解决这类问题的思路。

    PS:当然,这种方法还是有弊端的,比如在刷新页面时,由于使用的是ajax同步方式,因此数据量过大或连接慢的话,可能会造成卡顿、甚至假死。如有更好方法请告知,将不胜感激。

    水平有限,欢迎指正~
    如需转发,请注明出处,3q~

    参考:
    http://www.iteye.com/problems/63413
    http://blog.csdn.net/andy1219111/article/details/6914942

    展开全文
  • web关闭页面触发执行后台方法

    千次阅读 2017-03-08 10:47:37
    今天组长让我解决一下关闭页面关闭窗口、关闭浏览器分别调用的方法。然后我想,那肯定是监听啊。然后我查了下监听方法,window.onbeforeunload() 关闭窗口、刷新页面之前, window.onunload()这个是之后。然后我...
    今天组长让我解决一下关闭页面、关闭窗口、关闭浏览器分别调用的方法。然后我想,那肯定是监听啊。然后我查了下监听方法,window.onbeforeunload() 关闭窗口、刷新页面之前, window.onunload()这个是之后。然后我写了几个demo演示给他看:我写到了body里,他说,这个只能监控一个界面啊。然后我改进了下,放到js里:其实和放body一样的,只是外部引入美观了一些。然后我说每个界面调用这个不就行了么。被拒绝。又想到了放到一个页面头部,其他页面引入这个头部模板不就行了。试一下,果然好用。下一步要调用方法,我说是执行后台的一个方法,还是要进行页面的其他操作?他说后台的。从前台到后台,我想到了AJAX,我说了句这容易。过了一会,他说,他在别的地方加了,不用写了,几分钟后我还是把写好的AJAX的demo给他看:这个也可以。先留着,没准到时候按我这个改。
    
    展开全文
  • 刚好有时间把cookie和session重新回顾一下,在上次做登录页面记忆跳转功能时,发现无法使用cookie,因为只要关闭当前页面或者从当前页面跳转到其它页面cookie就失效了,自然也就无法做记忆功能了。 首先,我的是...

            刚好有时间把cookie和session重新回顾一下,在上次做登录页面记忆跳转功能时,发现无法使用cookie,因为只要关闭当前页面或者从当前页面跳转到其它页面cookie就失效了,自然也就无法做记忆功能了。

            首先,我看的是JSP中的cookie,不是其它语言中的。当然了,虽然我没有去查过,但是我觉得cookie这种开发知识,应该在所有web开发语言(或者规则)中都是相同或相通的吧。(下面说正事)

            cookie是服务器生成,存储在客户端浏览器(浏览器进程的内存)或者硬盘中的,它可以分为内存cookie和硬盘cookie,顾名思义就是存储在内存中的cookie,和存储在硬盘中的cookie,如果是内存cookie,那么一旦关闭当前浏览器窗口cookie就失效了,如果是硬盘cookie,那么它是不会根据浏览器关闭而失效的,它只会根据最初设置它的生命周期的时间而失效,没到时间它就一直有效。那么内存cookie的生存周期是多久呢?一般默认是30分钟,但是这个应该是可以根据服务器端的配置而更改的。在默认的时间内,只要不关闭当前浏览器窗口,cookie就是一直有效的,但是一旦关闭当前浏览器窗口,浏览器进程就会结束,分配的内存也会被清空,cookie自然也就失效了。

            那么怎么样在生成cookie时设置是内存cookie还是硬盘cookie呢?如果在生成cookie时有设置cookie的最大生存时间而不是让它默认为30分钟,那么它就是硬盘cookie,如果没有设置这一步,而是默认的最大生存时间,那么它就是内存cookie。

            可是上次我用cookie做登录记忆功能为什么失败了呢?又想了想,为什么呢?好像也不是路径的问题,因为我依稀记得我查看了cookie的有效路径是当前域下的根目录,为什么只要关闭当前页面cookie就失效了呢?想了想,是因为我用的谷歌浏览器做的测试?谷歌好像是为每一个页面都生成了一个子进程,所以只要关闭或者跳转走就认为是进程关闭,内存被释放了?有可能啊,那为什么session也是使用cookie来做校验的,为什么session就不会因为关闭当前页面而失效呢,或许是session的作用范围更大,在整个览器的父进程中都有效?或许吧,以后有机会再慢慢探索,也或许我一会就像明白了吧!O(∩_∩)O哈哈~

            如有错误还请留言指正,谢谢!

    展开全文
  • 这是一个面试中被问到的题目,答得不是很好,后来经过自己敲代码...比如有一个需求,给你三个页面A,B,C,要求A可以跳转到B页面,并传值,B可以跳转到C页面,并传值,C页面直接返回A页面,并且把C页面的值直接给A页面
  • 在应用中,经常看见支付成功...去年我写一个关闭网页的小demo HTML<p class='autoClose'>5S后关闭页面 JSfunction task(){ var n=$('.autoClose').html()[0]; if(n>1){//如果n>1 n--;//n-1 $('.autoClose').h
  • 探索浏览器页面关闭window.close()的使用

    千次阅读 多人点赞 2020-08-19 10:36:51
    不过既然它说是【关闭】,当时就想到了这个堪称“漏洞百出”的close事件,F12打开控制台一:果不其然 看到这顿时就来了兴趣 探索过程和解决方案 为什么就突然来了兴趣呢? 首先,从这行代码中可以看出:这个页面...
  • js弹出页面窗口和关闭

    万次阅读 2018-06-12 11:26:43
    JS定时自动关闭窗口 &lt;script language="javascript"&gt; &lt;!-- function closewin(){ self.opener=n
  • ALT+Z 可以打开前面关闭的网页。 %appdata%\maxthon3\USERNAME\History\...Config子目录里文件是保存上次未关闭页面的信息。   》》》》》》》   应该是用户数据文件损坏了,你可以在运行里输入“%a
  • 只出现两个,没有发现之前用的虚拟机列表; 打开编辑==》首选项:可以更改虚拟存储的默认目录(默认存储路径为C:\Users\SoulFerry2018\Documents\Virtual Machines) 如果你之前将虚拟机共享之后,虚拟机...
  • 在IOS APP中反复打开和关闭Unity页面

    千次阅读 2015-03-18 17:38:56
    项目的要求如下:在APP中点击3D场景的列表,打开并进入Unity的3D场景页面,然后在Unity中可以点击返回按钮退出Unity页面再次返回到IOS原生应用,前提是在同一个APP中进行 实现概要如下: 1.从Unity导出IOS工程,在...
  • js 全屏显示和关闭页面

    万次阅读 2010-08-09 11:28:00
    这里就是我的全屏内容,再看看原来我们在地址栏里输入的demo.jsp,是不是关闭了?OK,搞定! </body> </html> 退出全屏 ------------------------------------------------------------------------...
  • React组件卸载生命周期、路由跳转和页面关闭三者起来有些类似的地方,比如都是当前组件即将从视口消失,但实际上所触发的事件均不相同。以一个实际案例出发: 某单页应用的文章编辑页用户正在编辑文章,此时尚未...
  • 【转】JSP网页全屏显示、退出全屏、关闭页面 jsp相关知识2009-06-07 20:36:42阅读108评论0 字号:大中小 订阅 全屏显示 -----------------------------------------------------------------------...
  • 不过这个文件的属性是隐藏,所以必须在文件夹选项里设定显示隐藏的文件才会得到。目前的内存都是以 GB 计算,所以 hiberfil.sys 的档案大小也就跟着「水涨船高」  如果你没有习惯让电脑休眠的话,可以把...
  • 获得用户登陆不用说了,大家都知道,判断离开的话就有一点问题了,如果说用户都是按照设计者的规定的范围触发退出事件离开...最常见的非法离开就是关闭浏览器了。====================================================
  • 在展开今天的内容之前,我们先来一下, 是不是任何一个小屌丝都可以学习性能。 如果说 需求,开发,DB,运维,测试 是单一一门学科, 那么 性能 就是综合学科, 它包含了 需求分析,DB,开发,测试 ,运维的所有...
  • 限制,在PC上调试微信手机页面

    千次阅读 2016-09-23 18:07:36
    想在pc上打开利用微信oauth做限制的微信网页,按照《绕限制,在PC上调试微信手机页面》:http://chitanda.me/2015/06/29/debug-wechat-website-in-pc/的方法,基本思路是对的,但有点小问题,EditThisCookies这个...
  • 后来觉得只能靠自己了,之前debug,数据库查询返回是没问题,就是在跳转突然就关闭了,很尴尬,再试发现失败页面可以跳转成功页面跳转不成功,然后就观察成功页面有什么 有一个request域对象的获取,然后删,删掉觉得...
  • h5页面开发

    千次阅读 2018-08-01 16:43:00
    1. 安卓浏览器背景图片,有些设备会模糊。  同等比例的图片在PC端页面和移动手机端页面的分辨率差很多,原因和devicePixelRatio有关。手机分辨率比PC端的分辨率小,按照分辨率来显示网页会让字体变得很小。所以...
  • entry (应用的主模块)二、编写页面三、页面跳转1. 创建Feature Ability2. 跳转逻辑 首先要知道鸿蒙的APP是怎么构成的?   HarmonyOS的应用软件包以APP Pack(Application Package)形式发布,它是由一个或多个...
  • 在项目过程中我们经常会用到把一个页面嵌入到另外的一个页面当中去 比如以一个模态框的形式去展示 但是这个过程中而且还会涉及到数据的交互 比如在列表的展示页我们希望修改和添加是通过一个页面的弹框的形式去...
  • 页面中有一个标签,iOS直接就支持吊起相机拍照或是相册选择,但android中不支持吊起相机拍照,只能吊起相册选择,网上的帖子说是因为android屏蔽了文件上传功能还是怎么的,没明白。此篇博文记录如何解决这一问题...
  • js页面跳转整理

    千次阅读 2015-11-03 19:38:49
    js方式的页面跳转 1.window.location.href方式    window.location.href="target.aspx";    2.window.navigate方式跳转    window.navigate("target.aspx");   3.window.loction.replace...
  • 我在页面上添加了一个按钮btn,同时给这个按钮添加一个onclick事件,比如按一下按钮就添加一条数据到数据表中。 当我运行页面并按下按钮触发这个事件后,直接刷新一次页面,这个时候却发现,我没按按钮...
  • 你登录时间长,请重新返回登录页面进行登录。 您输入的确认码和系统产生的不一致,请重新输入。 解决方法: 只需把应用程序池中“最大工作进程数”设置为“1”即可。 操作方法: 一、Windows Server 2003...
  • 外行人都能懂的SpringCloud,错过了血亏!

    万次阅读 多人点赞 2018-08-27 09:31:50
    如果你接触一些分布式的基础概念,那肯定会听CAP这个理论。就比如说:你学了MySQL的InnoDB存储引擎相关知识,你肯定听ACID! 首先,我们来一下CAP分别代表的是什么意思: C:数据一致性(consistency) ...
  • layuiAdmin 框架单页面文档

    万次阅读 2019-08-29 00:58:59
    由于 layuiAdmin 可采用前后端分离开发模式,因此你无需将其放置在你的服务端 MVC 框架中,你只需要给 layuiAdmin 主入口页面(我们也称之为:宿主页面)进行访问解析,它即可全权完成自身路由的跳转和视图的呈现,...
  • 页面优化

    万次阅读 2014-05-07 10:52:23
    1. 从用户角度而言,优化能够让页面加载得更快、对用户的操作响应得更及时,能够给用户提供更为友好的体验。 2. 从服务商角度而言,优化能够减少页面请求数、或者减小请求所占带宽,能够节省可观的资源。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 179,708
精华内容 71,883
关键字:

如何关闭看过的页面