`

三个好用的ajax函数实现动态载入页面,可做为局部刷新页面用

    博客分类:
  • Ajax
阅读更多
    http://www.webshowme.com/04js/content.asp?id=933
1、函数一:
   function ajaxLoader2(id,url) {
        if (document.getElementById) {
            var x = (window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
            }
            if (x)
                {
            x.onreadystatechange = function()
                    {
                if (x.readyState == 4 && x.status == 200)
                        {
                        el = document.getElementById(id);
                        el.innerHTML = x.responseText;
                    }
                    }
                x.open("GET", url, true);
                x.send(null);
                }
        }

2、函数二、利用Iframe来完成
function ajaxLoader(id,url)  {  
    str="<iframe width=\"100%\" height=\"440\" frameborder=\"0\" src=\""+url+"\"></iframe>";
document.getElementById(id).innerHTML=str;
}


3、函数三:与一差不多但是更具体

/***********************************************
* Ajax Page Fetcher- by JavaScript Kit (www.javascriptkit.com)
***********************************************/

var ajaxpagefetcher={
loadingmessage: "<center class=\"errmsg\">Loading Page, please wait...</center>",
exfilesadded: "",

connect:function(containerid, pageurl, bustcache, jsfiles, cssfiles){
var page_request = false
var bustcacheparameter=""
if (window.XMLHttpRequest) // if Mozilla, IE7, Safari etc
page_request = new XMLHttpRequest()
else if (window.ActiveXObject){ // if IE6 or below
try {
page_request = new ActiveXObject("Msxml2.XMLHTTP")
}
catch (e){
try{
page_request = new ActiveXObject("Microsoft.XMLHTTP")
}
catch (e){}
}
}
else
return false
var ajaxfriendlyurl=pageurl.replace(/^http:\/\/[^\/]+\//i, "http://"+window.location.hostname+"/")
page_request.onreadystatechange=function(){ajaxpagefetcher.loadpage(page_request, containerid, pageurl, jsfiles, cssfiles)}
if (bustcache) //if bust caching of external page
bustcacheparameter=(ajaxfriendlyurl.indexOf("?")!=-1)? "&"+new Date().getTime() : "?"+new Date().getTime()
document.getElementById(containerid).innerHTML=decodeURIComponent(ajaxpagefetcher.loadingmessage) //Display "fetching page message"
page_request.open('GET', ajaxfriendlyurl+bustcacheparameter, true)
page_request.send(null)
},

loadpage:function(page_request, containerid, pageurl, jsfiles, cssfiles){
if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1)){
document.getElementById(containerid).innerHTML=page_request.responseText
for (var i=0; i<jsfiles.length; i++)
this.loadjscssfile(jsfiles[i], "js")
for (var i=0; i<cssfiles.length; i++)
this.loadjscssfile(cssfiles[i], "css")
this.pageloadaction(pageurl) //invoke custom "onpageload" event
}
},

createjscssfile:function(filename, filetype){
if (filetype=="js"){ //if filename is a external JavaScript file
var fileref=document.createElement('script')
fileref.setAttribute("type","text/javascript")
fileref.setAttribute("src", filename)
}
else if (filetype=="css"){ //if filename is an external CSS file
var fileref=document.createElement("link")
fileref.setAttribute("rel", "stylesheet")
fileref.setAttribute("type", "text/css")
fileref.setAttribute("href", filename)
}
return fileref
},

loadjscssfile:function(filename, filetype){ //load or replace (if already exists) external .js and .css files
if (this.exfilesadded.indexOf("["+filename+"]")==-1){ //if desired file to load hasnt already been loaded
var newelement=this.createjscssfile(filename, filetype)
document.getElementsByTagName("head")[0].appendChild(newelement)
this.exfilesadded+="["+filename+"]" //remember this file as being added
}
else{ //if file has been loaded already (replace/ refresh it)
  var targetelement=(filetype=="js")? "script" : (filetype=="css")? "link" : "none" //determine element type to create nodelist using
  var targetattr=(filetype=="js")? "src" : (filetype=="css")? "href" : "none" //determine corresponding attribute to test for
  var allsuspects=document.getElementsByTagName(targetelement)
  for (var i=allsuspects.length; i>=0; i--){ //search backwards within nodelist for matching elements to remove
   if (allsuspects[i] && allsuspects[i].getAttribute(targetattr)!=null && allsuspects[i].getAttribute(targetattr).indexOf(filename)!=-1){
    var newelement=this.createjscssfile(filename, filetype)
    allsuspects[i].parentNode.replaceChild(newelement, allsuspects[i])
   }
}
}
},


pageloadaction:function(pageurl){
this.onpageload(pageurl) //call customize onpageload() function when an ajax page is fetched/ loaded
},

onpageload:function(pageurl){
//do nothing by default
},

load:function(containerid, pageurl, bustcache, jsfiles, cssfiles){
var jsfiles=(typeof jsfiles=="undefined" || jsfiles=="")? [] : jsfiles
var cssfiles=(typeof cssfiles=="undefined" || cssfiles=="")? [] : cssfiles
this.connect(containerid, pageurl, bustcache, jsfiles, cssfiles)
}

} //End object

//Sample usage:
//jaxpagefetcher.load("container_id", "pageurl_or_path", bustcacheBool, [array_of_js_files], [array_of_css_files])
/*

The parameters in that order are:

container_id:    The ID attribute of the DIV or some other container on the page that the Ajax page should load inside
pageurl_or_path: The URL or relative path from the current page to the external page to load. For the URL, it must be from the same domain as the current!
bustcacheBool:A Boolean value (true or false) specifying whether the script should prevent the browser from caching the page after it's been fetched for the 1st time. Set to true if the external page is dynamic and likely changes within the same browser session.
[array_of_js_files]:An optional array that contains the paths to a list of external .js files you wish to load at the same time, each separated by a comma if multiple. For example: ["functions.js", "message.js"].
[array_of_css_files]: An optional array that contains the paths to a list of external .css files you wish to load at the same time, each separated by a comma if multiple. For example: ["pagestyle.js"]

*/
//1) ajaxpagefetcher.load("mydiv", "content.htm", true)
//2) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"])
//3) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js"], ["external.css"])
//4) ajaxpagefetcher.load("mydiv2", "content.htm", true, ["external.js", "external2.js"])
//5) ajaxpagefetcher.load("mydiv2", "content.htm", true, "", ["external.css", "external2.css"])


/*

<body>
<div id="joe"></div>

<script type="text/javascript">
// Fetch and display "content.htm" inside a DIV automatically as the page loads:
ajaxpagefetcher.load("joe", "content.htm", true)
</script>

<div id="bob"></div>

<script type="text/javascript">
<!-- Fetch and display "sub/content2.htm" inside a DIV when a link is clicked on. Also load one .css file-->
<a href="javascript:ajaxpagefetcher.load('bob', 'sub/content2.htm', false, '', ['page.css'])">Load Content 2</a>
</script>

</body>

*/

注意:使用权用函数一和三的时候,有可能会出现乱码,请将ID对象所在页面的编码改为utf-8编码
分享到:
评论

相关推荐

    Ajax页面局部异步刷新技术

    这样就可以实现局部页面的异步刷新了。 #### 示例代码解析 - **创建对象**:`var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");` 创建了一个`XMLHttpRequest`对象。 - **初始化请求**:`xmlhttp.open("get", ...

    ajax+jsp局部页面刷新

    本文将深入探讨如何运用Ajax与JSP实现局部页面的自动刷新,并通过一个具体的示例来展示这一过程。 ### Ajax与JSP的融合 Ajax(Asynchronous JavaScript and XML)是一种用于创建快速动态网页的技术,它允许在后台...

    jQuery+ajax实现局部刷新的两种方法

    在实现局部刷新的过程中,开发者还需要考虑数据同步问题,例如当多个页面显示相同数据时,需要确保刷新后所有页面显示的数据是一致的。此外,在加载新内容时,还要考虑错误处理机制,如请求失败时如何给用户适当的...

    jquery实现Ajax定时局部页面刷新

    本知识点将重点介绍如何使用jQuery库配合AJAX技术来实现局部页面的定时刷新。主要涉及的技术包括: - **jQuery**:一个快速、简洁的JavaScript库,极大地简化了HTML文档的操作、事件处理、动画等任务。 - **AJAX**...

    页面四种局部刷新技术.txt

    4. 使用JavaScript更新页面的指定部分,实现局部刷新。 综上所述,iframe、JavaScript、Callback和Ajax是实现页面局部刷新的四种关键技术。它们各有特点和适用场景,开发者可以根据实际需求选择合适的方法,以优化...

    php ajax 实现局部刷新简单例子(超简单化)

    ### 实现局部刷新的步骤 接下来,我们将基于提供的示例代码,详细解释如何使用PHP和AJAX实现网页的局部刷新。 #### HTML结构 在示例中,HTML部分设置了一个简单的布局,包含两个`&lt;div&gt;`元素。其中一个显示用户名...

    java实现ajax局部刷新

    前端JavaScript收到响应后,通过DOM操作将新数据插入到页面的适当位置,实现局部刷新的效果。 在学习这个基础示例时,初学者需要注意以下几点: - **JavaScript基础**:理解JavaScript的基本语法和DOM操作是使用...

    基于AdminLTE(bootstrap)用JS实现的局部刷新的案例

    7. **iframe局部刷新**:虽然在当前案例中没有直接提到,但有时也可以使用iframe来实现局部刷新。将需要刷新的部分放在一个iframe内,然后改变iframe的src属性即可。 通过以上步骤,你可以实现在AdminLTE和...

    之AJAX实现局部刷新

    ### AJAX实现局部刷新的知识点详解 #### 一、引言 在现代Web开发中,提升用户体验是至关重要的。其中一种常见的技术就是通过AJAX(Asynchronous JavaScript and XML)实现页面的局部刷新,使得用户在与网页交互时...

    Ajax将数据发送到后台进行局部刷新操作

    5. **DOM操作**:接收到服务器响应后,Ajax会通过JavaScript操作DOM,动态更新页面中的特定部分,实现局部刷新。 下面是一个简单的Ajax请求示例: ```javascript var xhr = new XMLHttpRequest(); xhr.open('GET', ...

    AJAX局部刷新和购物车实例

    开发者通过编写JavaScript代码来发送HTTP请求,处理服务器返回的数据,并将这些数据动态地更新到页面的特定部分,即实现局部刷新。 局部刷新是AJAX的核心特性,它可以用于多种场景,如搜索结果的即时显示、动态加载...

    定时局部刷新table

    局部刷新的关键在于使用Ajax技术向服务器发送请求并获取最新的数据。在`reFresh()`函数中,通过`sendPostRequest`函数发送异步POST请求到服务器端的`listJobLogAjax.action`接口。 ```javascript function reFresh...

    Ajax实现不刷屏的前提下实现页面定时刷新(代码)

    在IT领域,Ajax(Asynchronous JavaScript and XML)技术被广泛应用于网页开发中,它能够实现在不重新加载整个页面的情况下,对网页某部分进行更新。本文将深入解析如何利用Ajax技术实现页面的定时刷新功能,重点...

    ajax实现定时刷新

    总结来说,通过结合AJAX和JSP,我们可以实现一个定时刷新的功能,使得用户无需手动刷新页面就能获取实时更新的信息。而Struts2框架则为我们的应用程序提供了强大的结构和功能支持,使得后端处理更加灵活和高效。

    AJAX DWR框架实现部分刷新效果

    2. **JavaScript 代码**:使用DWR API调用服务器端的方法,接收返回的数据,并更新DOM以实现局部刷新。 3. **Java 服务端**:定义了被DWR调用的Java方法,处理业务逻辑,并可能与数据库或其他后端系统交互。 4. **...

    php+jQuery ajax实现的实时刷新显示数据功能示例

    在本文实例中,使用ajax的GET方法定时向服务器发送请求,获取数据,然后更新网页内容。 ajax请求中的主要属性和方法包括: 1. type:指定请求方式,本文示例中为"GET"。 2. url:指定请求的服务器地址。 3. ...

    JS封装的AJAX函数

    在传统的网页交互中,每次点击按钮或链接都需要加载整个页面,而AJAX则能在用户感知不到的情况下实现局部刷新,提升了用户体验。 封装的AJAX函数通常包括以下步骤: 1. 创建XMLHttpRequest对象:`var xhr = new ...

    ajaxAnywhere局部刷新(一)

    AjaxAnywhere是IBM推出的一款开源工具,它为Java Web应用程序提供了一个简单的方式来实现Ajax功能,使得开发者可以方便地在任何地方实现页面的局部刷新,提高用户体验。 ### 1. AjaxAnywhere简介 AjaxAnywhere是一...

    Ajax+js无刷新页面注册

    Ajax(Asynchronous JavaScript and XML)技术的出现,解决了这一问题,它允许我们在不刷新整个页面的情况下与服务器进行数据交换,从而实现页面的动态更新。本教程将详细介绍如何利用Ajax和JavaScript实现无刷新...

    Ajax实现定时刷新,获取后台数据实现技术

    例如,我们创建一个函数fetchData(),该函数使用Ajax从后台获取数据,然后用setInterval()定时调用这个函数。 ```javascript function fetchData() { var xhr = new XMLHttpRequest(); xhr.onreadystatechange = ...

Global site tag (gtag.js) - Google Analytics