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 ...
随机推荐
- 关于WEB-INF文件夹中的内容
刚才使用了fileupload的jar包,老样子,我只是在eclipse中将其添加到了project的java build path/libraries中 我以为这样就行了,是的,是行了,仅仅能保证在 ...
- Zabbix添加自定义监控项(一)
前言:由于Zabbix提供的项目和模板有限,有时我们需要自定义监控项,下面以监控磁盘I/O使用率为例,创建自动发现规则,并配置图形. (1)Zabbix_agentd端自动发现脚本,zabbix要求返 ...
- thymeleaf 的hello world
在研究一个模板引擎,选了这个thymeleaf .中间遇到很多的问题.现在在这里记录一下. 第一步:导入jar包.这里使用maven导入jar包 <!-- thymeleaf 核心包 begin ...
- Maven学习之(二)Maven插件创建项目
现在这里是已经在eclipse上成功的安装了Maven的插件后的操作,简单的创建一个项目, 同时实现Maven功能. 前提条件: 1.JDK 2.maven安装好 3.eclipse上maven插件安 ...
- (function($){...})(jQuery)是什么意思?
本文转自:http://blog.csdn.net/rambo_china/article/details/7742321 最近在工作中看到这调用定义方法,并且同时调用的方式,觉得很疑惑,看到这篇博客 ...
- 【C#/WPF】用System.Timers.Timer计时器做浮窗广告
需求:鼠标静止一段时间后,显示浮窗广告. 思路:界面XAML写好一个专门显示浮窗广告的Canvas,先设为不可见Visibility=”Collapsed”,然后用System.Timers.Time ...
- ExtJs 常用小技巧备忘录
1. ExtJs 给fieldLabel与fieldInput添加样式{给Input标签加入图标}http://www.w3school.com.cn/cssref/pr_background.asp ...
- linux定时任务crontab设置
crontab是linux下的定时任务,类似于window下的计划任务: crontab -l ##查询任务列表 crontab -e ##编辑定时任务 首先准备好要执行的脚本monitor_fs.s ...
- IE6、IE7、IE8、Firefox兼容性
整理关于IE6.IE7.IE8.Firefox兼容性CSS HACK问题 1.区别IE和非IE浏览器CSS HACK代码 #divcss5{background:blue; /*非IE 背景藍色*/b ...
- 高速入门:十分钟学会Python
初试牛刀 如果你希望学习Python这门语言.却苦于找不到一个简短而全面的新手教程.那么本教程将花费十分钟的时间带你走入Python的大门.本文的内容介于教程(Toturial)和速查手冊(Cheat ...