PDA

View Full Version : Dynamic AJAX Scripting Can you help?



andy@tcws
05-12-2009, 12:26 PM
Script: Dynamic Ajax Content
http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm

(EDIT Sorry, just realised this should be in the DD help forum)

Hi all - just a little help for a js newb (I'm not a scripter so this is a little bit over my head)... :confused:

I have successfully got this script (http://www.dynamicdrive.com/dynamicindex17/ajaxcontent.htm) working with AJAX portolio viewer MooFlow, to dynamically load several different MooFlow portfolios without refreshing the html.

So far so good.

The problem is with the DD script it's very clever in that it caches the existing Mootools js & MooFlow, however it seems that it needs to reload some Mooflow JS everytime the Mooflow portfolio is called, in order to function properly.

So basically I need to find a means of stopping it from caching the js, & possibly the css, from the code below. Any thoughts or suggestions? Help greatly appreciated :)


<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
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
}
}
}

</script>

andy@tcws
05-13-2009, 03:11 PM
Has anyone got any thoughts?

I think it might be just a case of removing a couple of lines from the js, but it's not obvious to me...

Cheers.

andy@tcws
05-18-2009, 03:14 PM
Pretty sure I've got this figured now. it was just a case of removing a line of code after all.