http://www.ppg.cn/YesPPG_CN/Products/NewProductMenu.aspx?ProductGroupID=588大家好.我想问一下.上面那个ajax的分页用jquery如何实现.他有一个特别的地方是,提交左数据后.还保存了状态.举例:按1页.2页后.可以在浏览器的后退按钮按一下后退即返回1页.
我们现在做的ajax不是后退按钮会失败么?他是如何解决的?是否重新提交了一个新的页面.

解决方案 »

  1.   

    似乎与这个相关:http://www.ppg.cn/YesPPG_CN/Script/Lib/jquery.historyj.js/* * jQuery history plugin * * Copyright (c) 2006 Taku Sano (Mikage Sawatari) * Licensed under the MIT License: *   http://www.opensource.org/licenses/mit-license.php * * Modified by Lincoln Cooper to add Safari support and only call the callback once during initialization * for msie when no initial hash supplied. */jQuery.extend({ historyCurrentHash: undefined, historyCallback: undefined, historyInit: function(callback){ jQuery.historyCallback = callback; var current_hash = location.hash; jQuery.historyCurrentHash = current_hash; if(jQuery.browser.msie) { // To stop the callback firing twice during initilization if no hash present if (jQuery.historyCurrentHash == '') { jQuery.historyCurrentHash = '#'; } // add hidden iframe for IE $j("body").prepend('<iframe id="jQuery_history" style="display: none;"></iframe>'); var ihistory = $j("#jQuery_history")[0]; var iframe = ihistory.contentWindow.document; iframe.open(); iframe.close(); iframe.location.hash = current_hash; } else if ($j.browser.safari) { // etablish back/forward stacks jQuery.historyBackStack = []; jQuery.historyBackStack.length = history.length; jQuery.historyForwardStack = []; jQuery.isFirst = true; } jQuery.historyCallback(current_hash.replace(/^#/, '')); setInterval(jQuery.historyCheck, 100); }, historyAddHistory: function(hash) { // This makes the looping function do something jQuery.historyBackStack.push(hash); jQuery.historyForwardStack.length = 0; // clear forwardStack (true click occured) this.isFirst = true; }, historyCheck: function(){ if(jQuery.browser.msie) { // On IE, check for location.hash of iframe var ihistory = $j("#jQuery_history")[0]; var iframe = ihistory.contentDocument || ihistory.contentWindow.document; var current_hash = iframe.location.hash; if(current_hash != jQuery.historyCurrentHash) { location.hash = current_hash; jQuery.historyCurrentHash = current_hash; jQuery.historyCallback(current_hash.replace(/^#/, '')); } } else if ($j.browser.safari) { if (!jQuery.dontCheck) { var historyDelta = history.length - jQuery.historyBackStack.length; if (historyDelta) { // back or forward button has been pushed jQuery.isFirst = false; if (historyDelta < 0) { // back button has been pushed // move items to forward stack for (var i = 0; i < Math.abs(historyDelta); i++) jQuery.historyForwardStack.unshift(jQuery.historyBackStack.pop()); } else { // forward button has been pushed // move items to back stack for (var i = 0; i < historyDelta; i++) jQuery.historyBackStack.push(jQuery.historyForwardStack.shift()); } var cachedHash = jQuery.historyBackStack[jQuery.historyBackStack.length - 1]; if (cachedHash != undefined) { jQuery.historyCurrentHash = location.hash; jQuery.historyCallback(cachedHash); } } else if (jQuery.historyBackStack[jQuery.historyBackStack.length - 1] == undefined && !jQuery.isFirst) { // back button has been pushed to beginning and URL already pointed to hash (e.g. a book) // document.URL doesn't change in Safari if (document.URL.indexOf('#') >= 0) { jQuery.historyCallback(document.URL.split('#')[1]); } else { var current_hash = location.hash; jQuery.historyCallback(''); } jQuery.isFirst = true; } } } else { // otherwise, check for location.hash var current_hash = location.hash; if(current_hash != jQuery.historyCurrentHash) { jQuery.historyCurrentHash = current_hash; jQuery.historyCallback(current_hash.replace(/^#/, '')); } } }, historyLoad: function(hash){ var newhash; if (jQuery.browser.safari) { newhash = hash; } else { newhash = '#' + hash; location.hash = newhash; } jQuery.historyCurrentHash = newhash; if(jQuery.browser.msie) { var ihistory = $j("#jQuery_history")[0]; var iframe = ihistory.contentWindow.document; iframe.open(); iframe.close(); iframe.location.hash = newhash; jQuery.historyCallback(hash); } else if (jQuery.browser.safari) { jQuery.dontCheck = true; // Manually keep track of the history values for Safari this.historyAddHistory(hash); // Wait a while before allowing checking so that Safari has time to update the "history" object // correctly (otherwise the check loop would detect a false change in hash). var fn = function() {jQuery.dontCheck = false;}; window.setTimeout(fn, 200); jQuery.historyCallback(hash); // N.B. "location.hash=" must be the last line of code for Safari as execution stops afterwards. //      By explicitly using the "location.hash" command (instead of using a variable set to "location.hash") the //      URL in the browser and the "history" object are both updated correctly. location.hash = newhash; } else {   jQuery.historyCallback(hash); } }});
      

  2.   


    <script language="javascript" type="text/javascript" src="../Script/Lib/jquery-1.1.4.js"></script>
    <script language="javascript" type="text/javascript" src="../Script/Products/product.js"></script>
     <script language="javascript" type="text/javascript" src="../Script/Products/PackageInfo.js"></script>
        <script language="javascript" type="text/javascript" src="../Script/Products/PackageItem.js"></script>
        <script language="javascript" type="text/javascript" src="../Script/Products/ProductInfo.js"></script>
        <script language="javascript" type="text/javascript" src="../Script/Products/PackageCart.js"></script>
        <script language="javascript" type="text/javascript" src="../Script/Products/productList.js"></script>
      <script language="javascript" type="text/javascript" src="../Script/Lib/jquery.historyj.js"></script>很厉害!谁要是做出来了!发份给我啊!
    点击[[email protected]]LiFuyun.Net[/email]发邮件给我![[email protected]][/email]
      

  3.   

    ajax?  ppg那个网页貌似可以后退啊!
      

  4.   

    ajax?  ppg那个网页貌似可以后退啊!
      

  5.   

    为什么一定要用Ajax进行分页呢.
    小弟的网站
    www.51ttsou.com
    采用了分页存储过程,处理大批量的数据.
    速度很快的.www.51ttsou.com
    是小弟新做的一个网站.
    处理的数据量都是以万为单位的.每天要增加好几千条.
    www.51ttsou.com 
    里面有兄弟的联系方式.
    欢迎兄弟访问指导,在线交流.
      

  6.   

    哈哈!楼主根本就没有好好的研究!点击分页的话上面的地址会变的!对于这样的情况来讲用不用ajax都没有什么区别的!改善不了用户刷新一样跳的感觉!只能说做的失败!
      

  7.   

    解决方案:
    http://www.mikage.to/jquery/jquery_history.html
      

  8.   

    你可以使用一个叫 UpdateControls 的开源控件,服务器端控制,很容易实现!
      

  9.   

    你注意看他地址栏的变化,他采用了hash值的方式,也就是http://www.abc.com/infoList.aspx?Page=2&sortID=43#1类似的这种url方式