PHP+jQuery實(shí)現(xiàn)滾屏無(wú)刷新動(dòng)態(tài)加載數(shù)據(jù)功能詳解
本文實(shí)例講述了PHP+jQuery實(shí)現(xiàn)滾屏無(wú)刷新動(dòng)態(tài)加載數(shù)據(jù)功能。分享給大家供大家參考,具體如下:
index.php
<?php
require_once('connect.php'); //連接數(shù)據(jù)庫(kù)
$user = array('demo1','demo2','demo3','demo3','<de></de>mo4'); //模擬了幾個(gè)用戶
?>
<!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>滾屏加載--無(wú)刷新動(dòng)態(tài)加載數(shù)據(jù)技術(shù)的應(yīng)用</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">提示:使用滾動(dòng)或拉動(dòng)滾動(dòng)條向下看。</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(); //頁(yè)面可視區(qū)域高度
var i = 1;//設(shè)置當(dāng)前頁(yè)數(shù)
$(window).scroll(function () {
var pageH = $(document.body).height();
var scrollT = $(window).scrollTop(); //滾動(dòng)條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("別滾動(dòng)了,已經(jīng)到底了。。。");
return false;
}
});
}
});
});
</script>
</html>
ajax_demo.sql
-- phpMyAdmin SQL Dump -- version 3.5.2.2 -- http://www.phpmyadmin.net -- -- 主機(jī): localhost -- 生成日期: 2015 年 01 月 18 日 15:56 -- 服務(wù)器版本: 5.1.46-community -- PHP 版本: 5.2.13 SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO"; SET time_zone = "+00:00"; /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; /*!40101 SET NAMES utf8 */; -- -- 數(shù)據(jù)庫(kù): `demo` -- -- -------------------------------------------------------- -- -- 表的結(jié)構(gòu) `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 ; -- -- 轉(zhuǎn)存表中的數(shù)據(jù) `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 CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
result.php 接收請(qǐng)求頁(yè)面
<?php
require_once('connect.php'); //連接數(shù)據(jù)庫(kù)
$user = array('demo1','demo2','demo3','demo3','demo4');
$page = intval($_GET['page']); //獲取請(qǐng)求的頁(yè)數(shù)
$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); //轉(zhuǎn)換為json數(shù)據(jù)輸出
}
//echo json_encode($arr); //轉(zhuǎn)換為json數(shù)據(jù)輸出
?>
connect.php 數(shù)據(jù)庫(kù)配置文件
<?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");
?>
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP+ajax技巧與應(yīng)用小結(jié)》、《PHP網(wǎng)絡(luò)編程技巧總結(jié)》、《PHP基本語(yǔ)法入門教程》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- PHP中使用jQuery+Ajax實(shí)現(xiàn)分頁(yè)查詢多功能操作(示例講解)
- 使用PHP+MySql+Ajax+jQuery實(shí)現(xiàn)省市區(qū)三級(jí)聯(lián)動(dòng)功能示例
- php+jQuery實(shí)現(xiàn)的三級(jí)導(dǎo)航欄下拉菜單顯示效果
- PHP批量刪除jQuery操作
- PHP jQuery+Ajax結(jié)合寫批量刪除功能
- jQuery+PHP+Mysql實(shí)現(xiàn)抽獎(jiǎng)程序
- php+mysql+jquery實(shí)現(xiàn)簡(jiǎn)易的檢索自動(dòng)補(bǔ)全提示功能
- PHP+JQUERY操作JSON實(shí)例
- php使用QueryList輕松采集js動(dòng)態(tài)渲染頁(yè)面方法
相關(guān)文章
php中實(shí)現(xiàn)字符串翻轉(zhuǎn)的方法
本文主要介紹了實(shí)現(xiàn)php字符串翻轉(zhuǎn)的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
php addslashes 利用遞歸實(shí)現(xiàn)使用反斜線引用字符串
以下是對(duì)php中利用遞歸實(shí)現(xiàn)使用反斜線引用字符串的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-08-08
PHP extract 將數(shù)組拆分成多個(gè)變量的函數(shù)
extract()函數(shù)提取關(guān)聯(lián)數(shù)組(對(duì)數(shù)字索引數(shù)組無(wú)效)每對(duì)key和value,生成以key為變量名、value為對(duì)應(yīng)值的多組新變量。2010-06-06
關(guān)于PHP結(jié)束標(biāo)簽的使用細(xì)節(jié)探討及聯(lián)想
PHP解析文件時(shí)會(huì)尋找開始?php和結(jié)束標(biāo)記?,標(biāo)記告訴PHP開始和停止解釋其中的代碼,接下來(lái)將詳細(xì)介紹下PHP結(jié)束標(biāo)簽的使用細(xì)節(jié)感興趣的你可以參考下本文或許可以幫助到你2013-03-03
PHP+MySQL+sphinx+scws實(shí)現(xiàn)全文檢索功能詳解
這篇文章主要介紹了PHP+MySQL+sphinx+scws實(shí)現(xiàn)全文檢索功能,詳細(xì)分析了sphinx、scws的下載安裝、配置、數(shù)據(jù)庫(kù)創(chuàng)建及全文檢索功能的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-08-08
php中g(shù)et_magic_quotes_gpc()函數(shù)說(shuō)明
get_magic_quotes_gpc函數(shù)是一個(gè)用來(lái)判斷是否為用戶提供的數(shù)據(jù)增加斜線了,這個(gè)在php.ini配置文件中哦,本文將介紹一下get_magic_quotes_gpc()函數(shù)說(shuō)明。下面跟著小編一起來(lái)看下吧2017-02-02
php壓縮HTML函數(shù)輕松實(shí)現(xiàn)壓縮html/js/Css及注意事項(xiàng)
如何提高網(wǎng)頁(yè)加載速度需要對(duì)網(wǎng)頁(yè)怎樣的優(yōu)化等等,都是站長(zhǎng)們所關(guān)心的問(wèn)題,其實(shí)壓縮網(wǎng)頁(yè)的方法很多,本文將講解一下php壓縮HTML函數(shù)輕松實(shí)現(xiàn)壓縮html/js/Css,感興趣的朋友可以了解下,希望本文對(duì)你有所幫助2013-01-01

