Fabis Posted June 9, 2009 Report Share Posted June 9, 2009 Lapa kurā gļuki: http://mechtopia.net/projectx/lolmaorofl/newst0f/index.php Šajā lapā ir News box kurā ar Ajax nolasa no getsite.php textu. Spiezhot uz linkiem dabuj "ziņas". Viss itkā OK, bet kad Ctrl + F5 (lai refreshotu visu) tieši šajā lapā, man tukša lapa un aukšā kkadi ķeburi. Apmēram pēc 1 sekundes aiziet normālā lapa. Atklāju ka tas ir no šīs rindiņas lapā: <body onload="MyAjaxRequest('news_main','getsite.php?state=onload')"> news_main ir DIVs un tas getsite.php?state=onload liek Newsboxa paradities informacijai kas ir getsite.php kad lapa tiek ieladeta jeb state=onload. Man šo rindiņu vajag lai rādītos informācija kad lapa tiko ielādēta, bet tad tas gļuks. Šeit ir Ajax kods (pats neraxtiju, bet dabuju interneta jo neko daudz nesaprotu no Javascript/Ajax): function MyAjaxRequest(target_div,file,check_div) { var MyHttpRequest = false; var MyHttpLoading = '<p>Loading...</p>'; // or use an animated gif instead: var MyHttpLoading = '<img src="loading.gif" border="0" alt="running" />'; var ErrorMSG = 'Sorry - No XMLHTTP support in your browser, buy a newspaper instead'; if(check_div) { var check_value = document.getElementById(check_div).value; } else { var check_value = ''; } if(window.XMLHttpRequest) // client use Firefox, Opera etc - Non Microsoft product { try { MyHttpRequest = new XMLHttpRequest(); } catch(e) { MyHttpRequest = false; } } else if(window.ActiveXObject) // client use Internet Explorer { try { MyHttpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { MyHttpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { MyHttpRequest = false; } } } else { MyHttpRequest = false; } if(MyHttpRequest) // browser supports httprequest { var random = Math.random() * Date.parse(new Date()); // make a random string to prevent caching var file_array = file.split('.'); // prepare to check if we have a query string or a html/htm file if(file_array[1] == 'php') // no query string, just calling a php file { var query_string = '?rand=' + random; } else if(file_array[1] == 'htm' || file_array[1] == 'html') // calling a htm or html file { var query_string = ''; } else // we have presumable a php file with a query string attached { var query_string = check_value + '&rand=' + random; } MyHttpRequest.open("get", url_encode(file + query_string), true); // <-- run the httprequest using GET // handle the httprequest MyHttpRequest.onreadystatechange = function () { if(MyHttpRequest.readyState == 4) // done and responded { document.getElementById(target_div).innerHTML = MyHttpRequest.responseText; // display result } else { document.getElementById(target_div).innerHTML = MyHttpLoading; // still working } } MyHttpRequest.send(null); } else { document.getElementById(target_div).innerHTML = ErrorMSG; // the browser was unable to create a httprequest } } // end of "AJAX" function // Here follows a function to urlencode the string we run through our httprequest, it has nothing to do with AJAX itself // If you look carefully in the above httprequest you se that we use this url_encode function around the file and query_string // This is very handy since we are using GET in our httprequest and for instance // any occurrance of the char # (from textboxes etc) will brake the string we are sending to our file - we don't want that to brake! // It will also convert spaces to + function url_encode(string) { var string; var safechars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz/-_.&?="; var hex = "0123456789ABCDEF"; var encoded_string = ""; for(var i = 0; i < string.length; i++) { var character = string.charAt(i); if(character == " ") { encoded_string += "+"; } else if(safechars.indexOf(character) != -1) { encoded_string += character; } else { var hexchar = character.charCodeAt(0); if(hexchar > 255) { encoded_string += "+"; } else { encoded_string += "%"; encoded_string += hex.charAt((hexchar >> 4) & 0xF); encoded_string += hex.charAt(hexchar & 0xF); } } } return encoded_string; } // end .js file :) Quote Link to comment Share on other sites More sharing options...
max Posted June 10, 2009 Report Share Posted June 10, 2009 Ja no AJAX neko daudz nesaproti, iesaku pameegjinaat jQuery un taa AJAX iebuuveetaas fiichas. Jaabuut galiigam analfabeetam, lai nesaprastu :) Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.