JQuery的一些注意事项(2)- AJAX 学习笔记

1. 动态加载外部文件:

    /*AJAX 动态加载外部文件*/
    $(document).ready(function () {
        $(‘#btn1‘).click(function () {
            $(‘#log-content‘).load(‘data/logs.txt‘); //这个txt文件内容如果是中文,需要保存成utf-8编码格式
        })
    })

2. 动态加载外部网页:

    /*AJAX 动态加载外部网页*/
    $(document).ready(function () {
        $(‘#btn1‘).click(function () {
            $(‘#log-content‘).load(‘http://localhost:63342/jQuery/data/htmldata.html?_ijt=sgjc9obth398kjjjv314ntgs17‘);
        })
    })

默认情况下,jQuery的load()函数会使用HTTP的Get函数向服务器发送数据请求,传递参数时,会自动以POST方式提交数据。

3. 加载网页文件内容并传递服务端参数

<label for="parameters"></label>
<select name="parameters" size="5" id="parameters">
    <option value="1" selected="selected">url</option>
    <option value="2">data</option>
    <option value="3">callback</option>
</select>
<br>
<div>
    <input id="btn1" type="button" value="获取外部文件">
    <div id="log-content"></div>
</div>
 $(document).ready(function () {
        $(‘#btn1‘).click(function () {
            $name = $("#parameters option:selected").val(); //层次选择器在一个“”内以空格区分
            $(‘#log-content‘).empty().load(‘demo.php‘,{name:$name});
        })
    });

用户从客户端的列表框选择一个参数值,点击事件发生后,将从服务端的PHP文件获取参数的描述

/*要获取的PHP文件*/
<?php
    switch($_POST[‘name‘]){
        case 1:
            echo ‘必需的URL参数规定用户希望加载的URL‘;
            break;
        case 2:
            echo ‘可选参数:data。 规定与请求一同发送的查询字符串键/值对集合。‘;
            break;
        case 3:
            echo ‘可选参数:callback。 load函数完成后所执行的函数名称。‘;
            break;
    }
?>

4. 使用 AJAX 无刷新网页删除记录(比如微博)

<div id="container">
    <h3>留言内容</h3>
    <div id="load" align="center"></div>
    <div class="box">
        <div class="text">
            <span>张三</span>
            <br>
            很好用的留言板
            <div class="date">2017-05-21</div>
        </div>
        <!--删除链接,每个链接的id值,指向数据库当前记录的id-->
        <a href="" id="1" class="delete">删除</a>
        <div class="clear"></div>
    </div>
</div>
<script>
   $(function () {
       $(‘.delete‘).click(function () {
           var commentContainer = $(this).parent();
           var id = $(this).attr(‘id‘);
           var string = ‘id=‘ + id;//构造参数字符串
           $.ajax({
               type:"POST",
               url: "ajax_delete_Server.php",
               data:string,//传递的参数字符串
               cache:false, //不缓存
               success:function () {
                   commentContainer.slideUp(‘slow‘,function () {
                       $(this).remove();
                   });
               }
           });
           return false;
       })
   })
</script>

调用$.ajax(),向 ajax_delete_Server.php 文件发送一个AJAX请求,用来删除留言。

总结:可以看出,$.ajax()和load()方法都可以用来加载服务端数据。

load()方法根据参数来决定是用GET还是POST。没有参数就是GET,带参数就是POST。这个参数可以指定要获取文件的特定内容。

$.ajax()是底层方法,它可以代替load()方法。

5. 验证插件,validator.min.js中,有一个方法,optional(element).

jQuery.validate的optional(element),用于表单控件的值不为空时才触发验证。当element为空时this.optional(element)=true,用于在该控件为非必填项目时可以通过验证,及条件可以不填但是不能填错格式。
// 中文字两个字节
jQuery.validator.addMethod("byteRangeLength", function(value, element, param) {
    var length = value.length;
    for(var i = 0; i < value.length; i++){
        if(value.charCodeAt(i) > 127){
            length++;
        }
    }
  return this.optional(element) || ( length >= param[0] && length <= param[1] );
}, $.validator.format("请确保输入的值在{0}-{1}个字节之间(一个中文字算2个字节)"));

这个插件的异步验证:使用 ajax 方式进行验证,默认会提交当前验证的值到远程地址,如果需要提交其他的值,可以使用 data 选项。

remote: {
    url: "check-email.php",     //后台处理程序
    type: "post",               //数据发送方式
    dataType: "json",           //接受数据格式
    data: {                     //要传递的数据
        username: function() {
            return $("#username").val();
        }
    }
}

6. 页面滚动时加载新的网页内容。

 $(document).ready(function () {
        $(‘#load_max‘).val(50);//为隐藏域赋值50,表示一次加载50条记录。
    });
    var loading = false;//全局变量,指定当前是否正在加载服务端内容。
    $(window).scroll(function () {
        //如果当前窗体的高度大于文档的高度
        if ((($(window).scrollTop()+$(window).height())+250)>=$(document).height()){
            if(loading===false){
                loading=true; //设置文档加载状态
                $(‘#loadingbar‘).css(‘display‘, ‘block‘); //显示加载提示条
                $.get("xxx.php?start="+$(‘#load_max‘).val(), function (loaded) {
                    $(‘body‘).append(loaded);
                    //在隐藏区域中设置新的起始值
                    $(‘#load_max‘).val(parseInt($(‘#load_max‘).val())+50);
                    $(‘#loadingbar‘).css(‘display‘,‘none‘); //隐藏状态条
                    loading=false; //结束加载的状态
                });
            }
        }
    });

滚动加载内容的核心是关联window的onscroll事件。判断当前滚动条位置,若高于当前文档的高度,则向服务端发送数据请求。

(此外,jQuery有一个lazyload插件,用来延迟加载长页面的图片。在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预加载的处理方式正好是相反的.)

时间: 2024-10-23 19:26:16

JQuery的一些注意事项(2)- AJAX 学习笔记的相关文章

Ajax学习笔记(三)

三.jQuery库详解 1.使用jQuery之后,javascript操作的不再是HTML元素对应的DOM对象,而是包装DOM对象的jQuery对象.js通过调用jQuery对象的方法来改变它所包装的DOM对象的属性,从而实现动态更新HTML页面. 由此可见,使用jQuery动态更新HTML页面只需以下两个步骤: (1)获取jQuery对象.jQuery对象通常是DOM对象的包装 (2)调用jQuery对象的方法来改变自身.当jQuery对象被改变时,jQuery包装的DOM对象随之改变,HTM

[ajax 学习笔记] json数据格式

之前写过ajax传送数据可以用普通文本和XML两种格式.这里记一下json数据格式. json:javascript object notation. 之前分析过,用文本和XML传送数据各有优劣.而json可以轻松地将javascript对象转换成可以随时发送的数据. 一个json数据例子: var people = { "programmers": [ { "firstName": "Brett", "lastName":&

“jquery中each方法和选择器”的学习笔记

<head> <title></title> <script src="jquery-1.4.2.js" type="text/javascript"></script> <script type="text/javascript"> $(function() { //alert($("div").text()); //对数组元素使用匿名函数进行逐个处理.

Ajax学习笔记(二)

二.prototype库详解 1.prototype库的使用 //导入下载好的prototype.js文件 <script type="text/javascript" src="prototype.js"></script> //在自己的js中直接使用Prototype对象 <script type="text/javascript"> document.writeln("Prototype库的版本

[ajax 学习笔记] ajax 的服务器响应

在上一篇[ajax 学习笔记] ajax初试中,简单了解了一下ajax. 我是参考AJAX详解.chm学习的,资源已上传.参考链接:Ajax 专题 今天又学习了ajax中关于服务器响应的一些知识. ajax中服务器的响应是通过响应函数将服务器返回的数据呈现到页面的.服务器的响应体现在服务器响应回调函数中. 在上一篇的例子中,响应函数为: function updatePage(){ if(xmlHttp.readyState == 4){ //http就绪状态 if(xmlHttp.status

ajax学习笔记1

ajax是什么? ajax即“Asynchronous Javascript + XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术.能够快速的从服务器获得所需数据和内容,实现局部刷新让用户能够更好的浏览网站.在没有ajax的时候,网页提交表单必须进行等待和刷新,这时用户必须等待服务器的响应,用户在当前页面不能做其他事情.自从有了ajax,用户在提交表单的时候不需要等待,可以浏览该页的其它东西,表单提交之后服务器能很快的返回所需的数据和网页,网页无需刷新. a

AJax 学习笔记二(onreadystatechange的作用)

AJax 学习笔记二(onreadystatechange的作用) 当发送一个请求后,客户端无法确定什么时候会完成这个请求,所以需要用事件机制来捕获请求的状态XMLHttpRequest对象提供了onreadyStateChange事件实现这一功能.这类似于回调函数的做法.onreadyStateChange事件可指定一个事件处理函数来处理XMLHttpRequest对象的执行结果,如: 复制代码 代码如下: ajaxObj=createAjaxObject(); var url="/MyTod

Ajax学习笔记(一)

XMLHttpRequest对象详解 1.Ajax应用中我们使用XMLHttpRequest对象异步发送请求,这种请求既可以是GET,也可以是POST,都可以带请求参数. 请求发送出去之后,服务器响应会在合适的时候返回,但是客户端不会自动加载这种异步响应,程序必须先调用XMLHttpRequest对象的responseText或responseXML来获取    服务器响应,再通过DOM操作将服务器响应动态加载到当前页面中. XMLHttpRequest的用处是:提供与服务器异步通信的能力 2.

Ajax学习笔记-JQuery中的Ajax

JQuery对Ajax操作进行了封装,在JQuery的最底层的方法是$.ajax(),第二层是load() $.get() $.post(), 第三层是$.getScript()和$.getJSON(). <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <script type=&quo