Ajax for Weblogs

xiaoxiao2021-03-06  21

Turn: Ajax for Weblogs

The Asynchronous JavaScript XML (AJaX) solution is one that can bring happiness and bliss to web designers and web developers alike. However, as with many whiz-bang solutions caution is advised. Google uses it to great effect but personally I think they take it a bit too far. If a page change so much that its context changes then it have switched to a new URI. People often bookmark specific content that's within a specific context. As soon as this is no longer true it maybe a clue that you 'Ve gone to far.

The first thing I notice that the solutions is aimed at the heavier web applications. Not surprising. Web applications suffer from constraints that web clients impose on them. This solution gives them a way to check for dynamic content without reloading the current page.

SO What Does it do?

Well it's very simple. It uses Javascript to get data from a remote source and then loads that into a specified target. Whatever content you like to wherever you like on the page. Jesse James Garrett of Adaptive Path has written an essay that covers the basics And Provides More Information on Ajax.

But Lets Get this Sucker Running, That's the fun bit. And it's pretty easy.

STEP 1

CHECK if Your Web Client Can Actually Handle The Http Requests. We'll Need To Use a Javascipt To Do this.

VAR ajax = false; / * @ cc_on @ * / / / * @ ix (@_jscript_version> = 5) Try {ajax = new activiXObject ("msxml2.xmlhttp");} catch (e) {Try {ajax = new activxObject "Microsoft.xmlhttp");} catch (e) {ajax = false;}} @end @ * / if (! Ajax && typeof xmlhtpRequest! = 'Undefined') {ajax = new xmlhttpRequest ();}

STEP 2

Add the script that will pick up your data. In this case I'm not picking up XML data. But the weblog of your choice and in my case it's ExpressionEngine will return the xHTML Which in turn will be inserted via the javascript innerHTML methode. Function getMyhtml (ServerPage, Objid) {IF ("http://www.yourdomain.com/")! = 0)) Return; var obj = document.GtelementByid (Objid); Ajax.Open (" Get ", serverpage); ajax.onreadyStateChange = function () {if (ajax.readystate == 4 && ajax.status == 200) {Obj.innerHtML = ajax.responsetext;}} ajax.send (null);}

STEP 3

The page that will display the dynamic content will need a placeholder element (tag) with a unique ID. The ID attribute will be used in the second script as a reference point to allow for insertion of the new dynamic content.

ajax test </ title> </ head> <body online = "getMYHTML ('serverpage.php', 'placeholder')> <div id =" placeholder "> <p> the 'getMyhtml' Script Will Overwrite this paragraph. </ p> </ div> </ body> </ html></p> <p>This Uri in The 'Onload' Is The One Which Will Generate The Content.</p> <p>STEP 4</p> <p>........................ ..</p> <p>IN Expression Engine I'm Calling a Template That Collects The Data for My Calendar. The Whole Calendar is Outputted as HTML AND Inserted Via The Script.</p> <p>Lets say the URI is 'http://www.yourdomain.com/tempate/pageid/' This could in fact be a PHP file or any other serverside script solution. The page only needs to return html. Here is an example in PHP <? php echo '<p> this is a php echo text </ p>';?>></p> <p>And That's About It. It's all pretty old school but there you have it.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-43548.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="43548" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.034</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = '3CMi8knfME41sTFqqfHS_2B3dMZuPSZNixWAQA8EwBrctJ_2Fa1qPAS58rGinxzVFivtWYr3o5g0TzBaZYreHcFg8A_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>