Results 1 to 2 of 2

Thread: Dynamic Ajax Content - after refresh

  1. #1
    Join Date
    Sep 2012
    Posts
    1
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Question Dynamic Ajax Content - after refresh

    1) Script Title: Dynamic Ajax Content

    2) Script URL (on DD): http://www.dynamicdrive.com/dynamici...jaxcontent.htm

    3) Describe problem: after refresh, page loaded through AJAX disappear. Is there a way I can retain the latest loaded page?

    *note:

    I also tried something from here : http://www.dynamicdrive.com/forums/s...ontent-refresh

    both does not work... What happens is I got stuck on the latest loaded page.

    Thank you in advance.

  2. #2
    Join Date
    Aug 2004
    Posts
    10,140
    Thanks
    3
    Thanked 1,008 Times in 993 Posts
    Blog Entries
    16

    Default

    If you only have one DIV container on the page that's loading Ajax content into, getting the script to recall the last viewed content automatically when the page loads is very simple. Take a look at the following code, with the changes to the default script highlighted in red:

    Code:
    <script type="text/javascript">
    
    /***********************************************
    * Dynamic Ajax Content-  Dynamic Drive DHTML code library (www.dynamicdrive.com)
    * This notice MUST stay intact for legal use
    * Visit Dynamic Drive at http://www.dynamicdrive.com/ for full source code
    ***********************************************/
    
    var bustcachevar=1 //bust potential caching of external pages after initial request? (1=yes, 0=no)
    var loadedobjects=""
    var rootdomain="http://"+window.location.hostname
    var bustcacheparameter=""
    
    function ajaxpage(url, containerid){
    var page_request = false
    if (window.XMLHttpRequest) // if Mozilla, Safari etc
    page_request = new XMLHttpRequest()
    else if (window.ActiveXObject){ // if IE
    try {
    page_request = new ActiveXObject("Msxml2.XMLHTTP")
    } 
    catch (e){
    try{
    page_request = new ActiveXObject("Microsoft.XMLHTTP")
    }
    catch (e){}
    }
    }
    else
    return false
    document.cookie = "lastloadedfile=" + url
    page_request.onreadystatechange=function(){
    loadpage(page_request, containerid)
    }
    if (bustcachevar) //if bust caching of external page
    bustcacheparameter=(url.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
    page_request.open('GET', url+bustcacheparameter, true)
    page_request.send(null)
    }
    
    function loadpage(page_request, containerid){
    if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))
    document.getElementById(containerid).innerHTML=page_request.responseText
    }
    
    function loadobjs(){
    if (!document.getElementById)
    return
    for (i=0; i<arguments.length; i++){
    var file=arguments[i]
    var fileref=""
    if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceeding
    if (file.indexOf(".js")!=-1){ //If object is a js file
    fileref=document.createElement('script')
    fileref.setAttribute("type","text/javascript");
    fileref.setAttribute("src", file);
    }
    else if (file.indexOf(".css")!=-1){ //If object is a css file
    fileref=document.createElement("link")
    fileref.setAttribute("rel", "stylesheet");
    fileref.setAttribute("type", "text/css");
    fileref.setAttribute("href", file);
    }
    }
    if (fileref!=""){
    document.getElementsByTagName("head").item(0).appendChild(fileref)
    loadedobjects+=file+" " //Remember this object as being already added to page
    }
    }
    }
    
    var lastloadedfile = (function(name){
    	var re=new RegExp(name+"=[^;]+", "i"); //construct RE to search for target name/value pair
    	if (document.cookie.match(re)) //if cookie found
    		return document.cookie.match(re)[0].split("=")[1] //return its value
    	return null
    }) ('lastloadedfile')
    
    
    if (window.addEventListener && lastloadedfile)
    	window.addEventListener('load', function(){ajaxpage(lastloadedfile, 'contentarea');}, false)
    else if (window.attachEvent && lastloadedfile)
    	window.attachEvent('onload', function(){ajaxpage(lastloadedfile, 'contentarea');})
    
    </script>
    
    <body>
    
    <a href="javascript:ajaxpage('test.htm', 'contentarea');">test</a> | <a href="javascript:ajaxpage('test2.htm', 'contentarea');">test</a>
    <div id="contentarea"></div>
    
    <body>
    
    <a href="javascript:ajaxpage('test.htm', 'contentarea');">test</a> | <a href="javascript:ajaxpage('test2.htm', 'contentarea');">test 2</a>
    <div id="contentarea"></div>

    The above code assumes your DIV Ajax container has an ID of "contentarea"; if not, inside the code in red, change the words "contentarea" to the actual DIV ID. With the above changes, clicking on "test1" to load test.htm then reloading the page will automatically recall "test.htm", populated inside the "contentarea" DIV. Same with the "test2" link.
    DD Admin

Similar Threads

  1. Dynamic Ajax Content & PHP header refresh
    By lelyea in forum Dynamic Drive scripts help
    Replies: 0
    Last Post: 02-18-2009, 01:05 AM
  2. Pages Overlap -- Do not refresh on Dynamic Ajax Content
    By Mng026 in forum Dynamic Drive scripts help
    Replies: 0
    Last Post: 05-11-2008, 07:32 PM
  3. Dynamic Ajax Content - refresh
    By swade in forum Dynamic Drive scripts help
    Replies: 3
    Last Post: 01-10-2008, 09:58 PM
  4. Dynamic Ajax Content refresh intervals?
    By jeff in forum Dynamic Drive scripts help
    Replies: 0
    Last Post: 02-02-2006, 08:54 PM
  5. Dynamic Ajax Content Refresh Error in IE
    By Dark Wraith in forum Dynamic Drive scripts help
    Replies: 13
    Last Post: 11-29-2005, 12:12 AM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •