ajax异步加载回跳定位
1)首先,问题是这样的:page1在一个滚动到页面底部加载更新的函数(功能),当页面滚动了第二页(或更多页)时,点击链接跳转到了其他页面(page2),在page2有返回按钮,当从page2返回page1时,返回不了(定位)page1的异步第二页了
2)这个问题很明显就是因为page1的分页是异步加载的,从page2返回page1时,page1已刷新,回到异步第一页,怎么弄成不管从page1的异步任意一页跳转page2,返回时定位回page1跳转前的位置呢??
3)如果你的用的前端框架(单面应用),这个问题就不用处理了(已加载的东西还在那,不会刷新,不会出现这个问题),但如果你有网页非常蛋痛刚好是两个独立的页面还没法非常简单改成单面应用,下面这个函数可以就有点用了~~~~~~~
直接上代码
page1:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Document</title> <style type="text/css"> ul{list-style-type:decimal;} </style> </head> <body> <ul id="list"> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> <li><a href="page2.html">随便写点什么~~~~</a></li> </ul> <script type="text/javascript"> /** * 设置回滚功能函数 * @param {string} page_name 页面的名字(标识) * @param {function} loadFunc 加载函数 */ function setRollBack(page_name, loadFunc){ var _window = window; var _name = page_name+'_scrollTop'; var scroll_top = 0; //如果存在记录就回滚 if(scroll_top=sessionStorage.getItem(_name)){ if(document.body.scrollHeight-window.screen.availHeight<scroll_top){ if(loadFunc) loadFunc(scroll_top); }else{ _window.scrollY = scroll_top; } } _window.addEventListener('scroll', function(){ sessionStorage.setItem(_name, document.body.scrollTop); }); } /** * 假设这个是异步加载函数 * @param {int} pageNo 页数 * @param {function} _callback 加载完成回调函数 */ function loadMore(page_no, _callback){ console.log(page_no); document.getElementById('list').innerHTML += '<li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li><li><a href="page2.html">随便写点什么~~~~</a></li>'; if(_callback) _callback(); } </script> <!--*******************************华丽的分割线,下面是应用*******************************************--> <script type="text/javascript"> //页码 var page_no = 1; //回调无限加载 var do_loadMore = function(scroll_top){ loadMore(++page_no, function(){ if(document.body.scrollHeight-window.screen.availHeight<scroll_top){ //回调 do_loadMore(scroll_top); }else{ window.scrollY = scroll_top; } }); }; //注册使用函数 setRollBack('page1', do_loadMore); //模拟滚动加载 window.addEventListener('scroll', function(){ if(document.body.scrollHeight -window.screen.availHeight-document.body.scrollTop<100){ loadMore(++page_no); } }); </script> </body> </html>
page2:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"> <title>Document</title> </head> <body> <a href="javascript:history.back();">返回</a> </body> </html>
ajax异步加载回跳定位的更多相关文章
- 淘宝购物车页面 智能搜索框Ajax异步加载数据
如果有朋友对本篇文章的一些知识点不了解的话,可以先阅读此篇文章.在这篇文章中,我大概介绍了一下构建淘宝购物车页面需要的基础知识. 这篇文章主要探讨的是智能搜索框Ajax异步加载数据.jQuery的社区 ...
- Scrapy爬虫框架教程(四)-- 抓取AJAX异步加载网页
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘 https://study.163.com/course/introduction ...
- jQuery的AJax异步加载
主要用到load()方法以及getScript()方法,具体以一个例子说明: 在现有html文件中加载一个拟好的片段,以及在片段加载完成之前阻止用户进一步操作的弹出框. 首先是现有html代码,无任何 ...
- ajax异步加载问题
使用ajax异步加载数据,在之后需要用到这个数据时,应该将之后的js一并写入ajax函数中,否则后面的js不能找到动态拼接的dom节点. 或者将其封装成方法,在ajax动态加载数据的最后调用该方法.
- Ajax 异步加载
AJAX (Asynchronous JavaScript and XML,异步的 JavaScript 和 XML).它不是新的编程语言,而是一种使用现有标准的新方法,是在不重新加载整个页面的情况下 ...
- 使用Ajax异步加载页面时,怎样调试该页面的Js
前言-本人不是干前端的,所以有的名词不专业 在前端中,有时候会遇到这样的框架,http://172.17.11.151:8060/frontend/backend.html#1.html (通过解析U ...
- AJAX异步加载
AJAX含义: 即"Asynchronous Javascript And XML"(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX可以跨 ...
- ajax异步加载查询数据库
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- ajax 异步加载显示等待效果
css: #loading { width:170px; height:25px; border:3px solid #C3DAF9; position:absolute; top:300px; le ...
随机推荐
- Ubuntu12.04下apache服务器的安装也配置
安装步骤 1.下载httpd http://httpd.apache.org/ 2.解压缩httpd tar vxzf httpd-2.4.6.tar.gz 3.安装httpd 进入解压缩后的目录 c ...
- [流水账]搜索与web-container版本匹配的jar包
刚才发现自己的servlet-api.jar里面的javax.servlet.jsp为空的,但是我又需要做一些JSP tag-lib的编程,所以没办法,只好去下一个新的包 上网找了找,我用的tomca ...
- iptables进行DNAT(目标地址转换)
前言:对于Linux服务器而言,一般服务器不会直接提供公网地址给用户访问,服务器在企业防火墙后面,通常只是暴露一个公网给用户,下面已80端口进行实现. 演示环境:VM (1)host: 172.16. ...
- C#中调用PowerShell代码
在C#中调用PowerShell代码,很多时候Add是不好使的!要用AddScript!记录一下! using (Runspace runspace = RunspaceFactory.CreateR ...
- 基于HTML5 Canvas粒子效果文字动画特效
之前我们分享过很多超酷的文字特效,其中也有利用HTML5和CSS3的.今天我们要来分享一款基于HTML5 Canvas的文字特效,输入框中输入想要展示的文字,回车后即可在canvas上绘制出粒子效果的 ...
- php和js以及ts的传值
egret是用ts写h5游戏,然后编译为js,有些数据想在加载时由服务端生成. 一种方法用网络请求,另外一种方法直接传值. 网络请求如果在运行中,有数据交互,其实是个比较好的选择. 而我只是在初始化时 ...
- 推荐一款编辑SQL的工具:jsqlparser
这个工具真的挺好用的,采用的是观察者模式,Visitor. 虽然我学过这个模式,但是乍一用还是有点懵逼的. 给好一个SQL语句之后,jsqlparser可以把这个sql语句给分解成all kind o ...
- Tslib步骤以及出现问题的解决方案(转)
嵌入式设备中触摸屏使用非常广泛,但触摸屏的坐标和屏的坐标是不对称的,需要校准.校准广泛使用的是开源的tslib. Tslib是一个开源的程序,能够为触摸屏驱动获得的采样提供诸如滤波.去抖.校准等功能, ...
- sql server拼接一列字段
有一表,名曰IPSlot,欲取IP整列字段. sql语句,利用sql server的xml auto将表数据转换成xml=> select name= STUFF( REPLACE( REPLA ...
- MVC教程一:MVC简介
一.概述 1.MVC是一种流行的Web应用架构技术,他把Web应用划分成Model(模型).Controller(控制器)和View(视图)三部分. 2.优点:可测试.可维护 3.MVC是ASP.NE ...