/[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

Annotation of /no_pager/no_pager.js

Parent Directory Parent Directory | Revision Log Revision Log


Revision 18 - (hide 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 dpavlin 2 /*
2     no pager, as seen at
3     http://www.humanized.com/weblog/2006/04/28/reading_humanized/
4 dpavlin 11 but using jquery
5    
6     2006-08-16 Dobrica Pavlinusic <dpavlin@rot13.org>
7 dpavlin 2 */
8    
9 dpavlin 11 var preloadDistance = 1000;
10     var isUpdating = false;
11 dpavlin 18 var isMouseDown = false;
12 dpavlin 11 var checker;
13 dpavlin 15 var v;
14     var cookie = 'no_pager';
15 dpavlin 11
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 dpavlin 2 }
25    
26 dpavlin 11 function log( m1, m2 ) {
27     var m = m1;
28     if (m2) m += m2;
29     m += '</br>'
30     if (m) $('#debug').append( m );
31 dpavlin 2 }
32    
33 dpavlin 11 function load_page() {
34 dpavlin 15 setCookie(cookie+"_height", getScrollHeight() );
35     setCookie(cookie+"_scroll", getScrollHeight() - _getWindowHeight() );
36 dpavlin 2
37 dpavlin 11 if ( isUpdating == true
38 dpavlin 18 || isMouseDown == true
39 dpavlin 11 || getPageHeight() - getScrollHeight() > preloadDistance
40 dpavlin 15 || v.page >= v.max_page
41 dpavlin 11 ) return;
42 dpavlin 2
43 dpavlin 15 v.page++;
44 dpavlin 2
45 dpavlin 15 log(
46     'Get page:' + v.page + '<br/>search: ' + v.search +
47     ' PageHeight:' + getPageHeight() + ' ScrollHeight:' + getScrollHeight()
48     );
49 dpavlin 2
50 dpavlin 15 setCookie( cookie+'_page', v.page );
51 dpavlin 11 isUpdating = true;
52 dpavlin 2
53 dpavlin 11 $('#status').html(
54 dpavlin 15 'Loading page '+ v.page + '...'
55 dpavlin 11 );
56 dpavlin 2
57 dpavlin 11 $.get(
58     "index.cgi/snippet",
59     {
60 dpavlin 15 page: v.page,
61 dpavlin 16 search: v.search
62 dpavlin 11 },
63     function ( response ) {
64    
65 dpavlin 18 $('#next_page').html( response );
66 dpavlin 9
67 dpavlin 15 eval( 'v=' + $('#json').val() );
68    
69 dpavlin 11 isUpdating = false;
70 dpavlin 15 $('#status').html( v.status );
71 dpavlin 11 }
72     );
73 dpavlin 9
74 dpavlin 2
75     }
76    
77 dpavlin 11 /*
78     bind events and init no_pager
79     */
80 dpavlin 2
81 dpavlin 11 $(document).ready( function() {
82 dpavlin 2
83 dpavlin 11 logDebug( 'no_page binding events' );
84 dpavlin 2
85 dpavlin 15 eval( 'v=' + $('#json').val() );
86 dpavlin 2
87 dpavlin 15 var cookie_id = getCookie(cookie+'_id') || 0;
88 dpavlin 11
89 dpavlin 15 logDebug("Page ID:", v.id);
90     logDebug("Page Cookie:", cookie_id);
91    
92 dpavlin 2 var fromBackButton = false;
93 dpavlin 15 if ( cookie_id == v.id ) {
94 dpavlin 11 fromBackButton = true;
95     } else {
96 dpavlin 15 setCookie(cookie+'_id', v.id);
97 dpavlin 11 }
98 dpavlin 2
99     logDebug("From Back Button?:", fromBackButton);
100 dpavlin 15 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 dpavlin 2 }
106    
107 dpavlin 18 $(window).mousedown( function () {
108     isMouseDown = true;
109     });
110     $(window).mouseup( function () {
111     isMouseDown = false;
112     });
113 dpavlin 15
114     checker = setInterval(function () {
115     load_page();
116     }, 100);
117    
118    
119 dpavlin 11 });
120 dpavlin 2

  ViewVC Help
Powered by ViewVC 1.1.26