滚屏加载--无刷新动态加载数据技术的应用

index.html

<?php

require_once(‘connect.php‘); //连接数据库

$user = array(‘demo1‘,‘demo2‘,‘demo3‘,‘demo3‘,‘<de></de>mo4‘); //模拟了几个用户

?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">

<head>

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />

<title>滚屏加载--无刷新动态加载数据技术的应用</title>

<style type="text/css">

#container{margin:10px auto;width: 660px;  border: 1px solid #999;}

.single_item{padding: 20px; border-bottom: 1px dotted #d3d3d3;}

.author{position: absolute; left: 0px; font-weight:bold; color:#39f}

.date{position: absolute; right: 0px; color:#999}

.content{line-height:20px; word-break: break-all;}

.element_head{width: 100%; position: relative; height: 20px;}

.nodata{display:none; height:32px; line-height:32px; text-align:center; color:#999; font-size:14px}

</style>

<script type="text/javascript" src="jquery-1.8.3.min.js"></script>   //需要引入jquery

</head>

<body>

<p class="one" style="margin:20px">提示:使用滚动或拉动滚动条向下看。</p>

<div id="container">

<?php

$query=mysqli_query($link, "select * from say order by id desc limit 0,15");

while ($row=mysqli_fetch_array($query, MYSQLI_ASSOC)) {

?>

<div class="single_item">

<div class="element_head">

<div class="date"><?php echo date(‘m-d H:i‘,$row[‘addtime‘]);?></div>

<div class="author"><?php echo $user[$row[‘userid‘]];?></div>

</div>

<div class="content"><?php echo $row[‘content‘];?></div>

</div>

<?php } ?>

</div>

<div class="nodata"></div>

</body>

<script type="text/javascript">

$(function(){

var winH = $(window).height(); //页面可视区域高度

var i = 1;//设置当前页数

$(window).scroll(function () {

var pageH = $(document.body).height();

var scrollT = $(window).scrollTop(); //滚动条top

var aa = (pageH-winH-scrollT)/winH;

if(aa<0.02){

$.getJSON("result.php",{page:i},function(json){

if(json){

var str = "";

$.each(json,function(index,array){

var str = "<div class=\"single_item\"><div class=\"element_head\">";

var str = str + "<div class=\"date\">"+array[‘date‘]+"</div>";

var str = str + "<div class=\"author\">"+array[‘author‘]+"</div>";

var str = str + "</div><div class=\"content\">"+array[‘content‘]+"</div></div>";

$("#container").append(str);

});

i++;

}else{

$(".nodata").show().html("别滚动了,已经到底了。。。");

return false;

}

});

}

});

});

</script>

</html>

connect.php

<?php

$host="localhost";

$db_user="root";

$db_pass="admin";

$db_name="ajax_demo";

$timezone="Asia/Shanghai";

$link=mysqli_connect($host,$db_user,$db_pass);

mysqli_select_db($link, $db_name);

mysqli_query($link, "SET names UTF8");

header("Content-Type: text/html; charset=utf-8");

?>

result.php

<?php

require_once(‘connect.php‘); //连接数据库

$user = array(‘demo1‘,‘demo2‘,‘demo3‘,‘demo3‘,‘demo4‘);

$page = intval($_GET[‘page‘]);  //获取请求的页数

$start = $page*15;

$query=mysqli_query($link, "select * from say order by id desc limit $start,15");

/* while ($row=mysqli_fetch_array($query)) {

$arr[] = array(

‘content‘=>$row[‘content‘],

‘author‘=>$user[$row[‘userid‘]],

‘date‘=>date(‘m-d H:i‘,$row[‘addtime‘])

);

}  */

if($query){

while ($row=mysqli_fetch_array($query)) {

$arr[] = array(

‘content‘=>$row[‘content‘],

‘author‘=>$user[$row[‘userid‘]],

‘date‘=>date(‘m-d H:i‘,$row[‘addtime‘])

);

}

}

if(!empty($arr)){

echo json_encode($arr);  //转换为json数据输出

}

//echo json_encode($arr);  //转换为json数据输出

?>

ajax_demo.sql

-- phpMyAdmin SQL Dump

-- version 3.5.2.2

-- http://www.phpmyadmin.net

--

-- 主机: localhost

-- 生成日期: 2015 年 01 月 18 日 15:56

-- 服务器版本: 5.1.46-community

-- PHP 版本: 5.2.13

SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

SET time_zone = "+00:00";

/*!40101 SET @[email protected]@CHARACTER_SET_CLIENT */;

/*!40101 SET @[email protected]@CHARACTER_SET_RESULTS */;

/*!40101 SET @[email protected]@COLLATION_CONNECTION */;

/*!40101 SET NAMES utf8 */;

--

-- 数据库: `demo`

--

-- --------------------------------------------------------

--

-- 表的结构 `say`

--

CREATE TABLE IF NOT EXISTS `say` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`userid` int(11) NOT NULL DEFAULT ‘0‘,

`content` varchar(200) NOT NULL,

`addtime` int(10) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=63 ;

--

-- 转存表中的数据 `say`

--

INSERT INTO `say` (`id`, `userid`, `content`, `addtime`) VALUES

(1, 0, ‘爱爱爱‘, 1421332482),

(2, 1, ‘爱爱爱‘, 1421332482),

(3, 0, ‘爱爱爱‘, 1421332482),

(4, 1, ‘爱爱爱‘, 1421332482),

(5, 0, ‘爱爱爱‘, 1421332482),

(6, 0, ‘爱爱爱‘, 1421332482),

(7, 0, ‘爱爱爱‘, 1421332482),

(8, 2, ‘爱爱爱‘, 1421332482),

(9, 0, ‘爱爱爱‘, 1421332482),

(10, 0, ‘爱爱爱‘, 1421332482),

(11, 0, ‘爱爱爱‘, 1421332482),

(12, 0, ‘爱爱爱‘, 1421332482),

(13, 0, ‘爱爱爱‘, 1421332482),

(14, 0, ‘爱爱爱‘, 1421332482),

(15, 0, ‘爱爱爱‘, 1421332482),

(16, 0, ‘爱爱爱‘, 1421332482),

(17, 0, ‘爱爱爱‘, 1421332482),

(18, 0, ‘爱爱爱‘, 1421332482),

(19, 0, ‘爱爱爱‘, 1421332482),

(20, 0, ‘爱爱爱‘, 1421332482),

(21, 0, ‘爱爱爱‘, 1421332482),

(22, 0, ‘爱爱爱‘, 1421332482),

(23, 0, ‘爱爱爱‘, 1421332482),

(24, 0, ‘爱爱爱‘, 1421332482),

(25, 0, ‘爱爱爱‘, 1421332482),

(26, 0, ‘2222‘, 1421333156),

(27, 0, ‘2222‘, 1421333159),

(28, 0, ‘2222‘, 1421333161),

(29, 0, ‘2222‘, 1421333162),

(30, 0, ‘2222‘, 1421333164),

(31, 0, ‘2222‘, 1421333165),

(32, 0, ‘2222‘, 1421333167),

(33, 0, ‘2222‘, 1421333168),

(34, 0, ‘2222‘, 1421333169),

(35, 0, ‘2222‘, 1421333170),

(36, 0, ‘2222‘, 1421333172),

(37, 0, ‘2222‘, 1421333173),

(38, 0, ‘2222‘, 1421333175),

(39, 0, ‘2222‘, 1421333176),

(40, 0, ‘2222‘, 1421333177),

(41, 0, ‘2222‘, 1421333178),

(42, 0, ‘2222‘, 1421333179),

(43, 0, ‘2222‘, 1421333181),

(44, 0, ‘2222‘, 1421333182),

(45, 0, ‘2222‘, 1421333183),

(46, 0, ‘2222‘, 1421333184),

(47, 0, ‘2222‘, 1421333293),

(48, 0, ‘2222‘, 1421333295),

(49, 0, ‘2222‘, 1421333296),

(50, 0, ‘2222‘, 1421333297),

(51, 0, ‘2222‘, 1421333298),

(52, 0, ‘2222‘, 1421333299),

(53, 0, ‘2222‘, 1421333300),

(54, 0, ‘2222‘, 1421333302),

(55, 0, ‘2222‘, 1421333303),

(56, 0, ‘2222‘, 1421333304),

(57, 0, ‘2222‘, 1421333305),

(58, 0, ‘2222‘, 1421333306),

(59, 0, ‘2222‘, 1421333308),

(60, 0, ‘2222‘, 1421333309),

(61, 0, ‘2222‘, 1421333310),

(62, 0, ‘2222‘, 1421333311);

/*!40101 SET [email protected]_CHARACTER_SET_CLIENT */;

/*!40101 SET [email protected]_CHARACTER_SET_RESULTS */;

/*!40101 SET [email protected]_COLLATION_CONNECTION */;

时间: 2024-10-10 11:24:47

滚屏加载--无刷新动态加载数据技术的应用的相关文章

滚屏无刷新动态加载数据

我们经常会见到滚动条滑动到底部时会自动加载数据,比如QQ空间的查看动态.下面就用一个简单的Demo来实现 1.首先建一个html文件,代码如下 1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ut

android左右滑动加载分页以及动态加载数据

android UI 往右滑动,滑动到最后一页就自动加载数据并显示 如图: Java代码 package cn.anycall.ju; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import android.app.Activity; import android.content.ActivityNotFoundException; impo

Delphi静态加载DLL和动态加载DLL示例

下面以Delphi调用触摸屏动态库xtkutility.dll为例子,说明如何静态加载DLL和动态加载DLL. 直接上代码. 1.静态加载示例 unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) btnEnableTouch: TButton; btnDi

vue 首次加载缓慢/刷新后加载缓慢 原因及解决方案

# vue 首次加载缓慢/刷新后加载缓慢 原因及解决方案 最近做项目发现一个问题,页面每次刷新后加载速度都非常慢,20s左右,在开发环境则非常流畅,几乎感觉不到,本文参考望山的各种方案优化 1,关闭打包时生成的map文件 在config/index.js文件中讲productionSourceMap设置为false,再次打包便没有了map文件 2,vue-router路由懒加载 懒加载的实现方式有很多种,这里简单说三种实现方法 vue异步组件 import() webpack的require.e

ajax无刷新获取php后台数据

1 $.ajax({ 2 url:"result.php", 3 //data:{"page":i}, 4 dataType:"json", 5 beforeSend:function(){ 6 $("#load").append("<div id='loading'><img src='loading.gif'></div>"); 7 }, 8 success:func

WebStorm10.0.4 Live Edit与Google浏览器实时无刷新自动加载页面

[1]打开webstorm→Ctrl + Alt + S→在搜索框输入:live edit,并且进行如下设置,设置完成点击右下角“OK”按钮: [2]在Google浏览器中安装 JetBrains IDE Suport 扩展程序,具体为: http://jingyan.baidu.com/article/bad08e1eef45fa09c85121c2.html [3]在WebStorm中,点击“选中”你需要在浏览器中实现实时刷新的页面(例如,我需要在浏览器中实时刷新gallery.html页面

WPF实现无刷新动态切换多语言(国际化)

1. 在WPF中国际化使用的是 .xaml文件的格式 如图:Resource Dictionary (WPF) 2. 创建默认的语言文件和其他语言文件 这里以英语为默认语言,新建一个 Resource Dictionary (WPF)文件,并命名为DefaultLanguage.xaml,内容如下: <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns

Jquery无刷新实时更新表格数据

html代码: <table width="600" align="center">  <tr class="head">  <th>First</th><th>Last</th>  </tr>  <?php  $sql=mysql_query("select * from add_delete_record");  $i=1;  whi

liteos动态加载(十三)

1. 概述 1.1 基本概念 动态加载是一种程序加载技术. 静态链接是在链接阶段将程序各模块文件链接成一个完整的可执行文件,运行时作为整体一次性加载进内存.动态加载允许用户将程序各模块编译成独立的文件而不将它们链接起来,在需要使用到模块时再动态地将其加载到内存中. 静态链接将程序各模块文件链接成一个整体,运行时一次性加载入内存,具有代码装载速度快等优点.但当程序的规模较大,模块的变更升级较为频繁时,会存在内存和磁盘空间浪费.模块更新困难等问题. 动态加载技术可以较好地解决上述静态链接中存在的问题