/[jquery]/no_pager/no_pager.js
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Contents of /no_pager/no_pager.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (show annotations)
Wed Aug 16 23:37:51 2006 UTC (17 years, 8 months ago) by dpavlin
File MIME type: application/javascript
File size: 2274 byte(s)
track mouse(up|down) event to prevent manic next page reload in everything except firefox,
next_page div is now created server-side, make get_results more robust
1 /*
2 no pager, as seen at
3 http://www.humanized.com/weblog/2006/04/28/reading_humanized/
4 but using jquery
5
6 2006-08-16 Dobrica Pavlinusic <dpavlin@rot13.org>
7 */
8
9 var preloadDistance = 1000;
10 var isUpdating = false;
11 var isMouseDown = false;
12 var checker;
13 var v;
14 var cookie = 'no_pager';
15
16 /*
17 function to log debugging information into debug div
18 */
19
20 function logDebug( m1, m2 ) {
21 var m = m1;
22 if (m2) m += m2;
23 if (m) $('#debug').append( '<small>'+m+'</small><br/>' );
24 }
25
26 function log( m1, m2 ) {
27 var m = m1;
28 if (m2) m += m2;
29 m += '</br>'
30 if (m) $('#debug').append( m );
31 }
32
33 function load_page() {
34 setCookie(cookie+"_height", getScrollHeight() );
35 setCookie(cookie+"_scroll", getScrollHeight() - _getWindowHeight() );
36
37 if ( isUpdating == true
38 || isMouseDown == true
39 || getPageHeight() - getScrollHeight() > preloadDistance
40 || v.page >= v.max_page
41 ) return;
42
43 v.page++;
44
45 log(
46 'Get page:' + v.page + '<br/>search: ' + v.search +
47 ' PageHeight:' + getPageHeight() + ' ScrollHeight:' + getScrollHeight()
48 );
49
50 setCookie( cookie+'_page', v.page );
51 isUpdating = true;
52
53 $('#status').html(
54 'Loading page '+ v.page + '...'
55 );
56
57 $.get(
58 "index.cgi/snippet",
59 {
60 page: v.page,
61 search: v.search
62 },
63 function ( response ) {
64
65 $('#next_page').html( response );
66
67 eval( 'v=' + $('#json').val() );
68
69 isUpdating = false;
70 $('#status').html( v.status );
71 }
72 );
73
74
75 }
76
77 /*
78 bind events and init no_pager
79 */
80
81 $(document).ready( function() {
82
83 logDebug( 'no_page binding events' );
84
85 eval( 'v=' + $('#json').val() );
86
87 var cookie_id = getCookie(cookie+'_id') || 0;
88
89 logDebug("Page ID:", v.id);
90 logDebug("Page Cookie:", cookie_id);
91
92 var fromBackButton = false;
93 if ( cookie_id == v.id ) {
94 fromBackButton = true;
95 } else {
96 setCookie(cookie+'_id', v.id);
97 }
98
99 logDebug("From Back Button?:", fromBackButton);
100 if ( fromBackButton ) {
101 logDebug( 'Load ' + getCookie(cookie+'_page') + ' pages');
102 logDebug( 'Scroll to:' + getCookie(cookie+'_scroll') );
103 $('#spacer').height( getCookie(cookie+'_height')+"px" );
104 scroll( 0, getCookie(cookie+'_scroll') );
105 }
106
107 $(window).mousedown( function () {
108 isMouseDown = true;
109 });
110 $(window).mouseup( function () {
111 isMouseDown = false;
112 });
113
114 checker = setInterval(function () {
115 load_page();
116 }, 100);
117
118
119 });
120

  ViewVC Help
Powered by ViewVC 1.1.26