Programming In Scala Reading Note 8

AJAX

XMLHttpRequest,是AJAX得以实现的基础

他是一个对象,有几个需要记住的方法和属性:

XMLHttpRequest方法

open(method, url, async, username, password)

method: post或get

url: 请求地址

async: boolean,默认为ture,是否异步?

后面的基本上没啥意思。。。

send(content)

xmlHttpRequest调用了open方法之后,并没有真正发生一个请求事件。

send执行的时候才真正意义上的发送了请求。

当open的method指定为get的时候,open参数为null;如果是post的时候, content需要是‘a=1&b=2‘这种形式的字符串。

XMLHttpRequest属性

onreadystatechange: 请求状态发生变化的时候,执行的程序

readyState: 有0,1,2,3,4四种状态值,其中4的意思是请求完成了

responseXML : 服务器端返回的XML

responseText : 服务器端返回的String

status : 200, 404等状态码

xmlHttpRequesst.onreadystatechange = function(){
  if(xmlHttpRequesst == 4){
    if (xmlHttpRequesst.status==200){
      document.getElementById("some").innerHTML = xmlHttpRequesst.responseText;
    }
  }
}
xmlHttpRequest.open(‘GET‘, ‘/some/resource/url‘);
xmlHttpRequest.send(null);

其实各个知名的浏览器都有自己的XMLHttpRequest对象,只不过存储的位置不同而已:

if (window.XMLHttpRequest) {
    xmlHttpRequest = new XMLHttpRequest();
} else if (window.ActiveXObjext) {
    xmlHttpRequest = new ActiveXObjext("Msxml2.XMLHTTP");
} else {
    // rubbish browser
}

jQuery AJAX WAY

load(url, parameters, callback)

这个方法的调用者是一个包装集,会把服务器端返回的内容加载到指定的包装集元素上。。。

url : 服务器请求资源的地址

parameter : 请求参数,如果指定的话为post方法;不指定的话为get请求

callback : 服务器资源加载到页面上之后,调用的回调函数。这个函数的参数是相应的文本,状态吗,以及XHR实例。

serialize()

serializeArray()

$(function(){
    $(‘someSelector‘).load(
        ‘url‘,
        {
            ‘name‘ : ‘voctrals‘,
            ‘age‘ : ‘11‘
        },
        function(){
            alert(‘finished~‘);
        }
    );
});

如果从服务器端取回来的内容不应该直接放到浏览器上去显示,那么可以就需要其它的方式了,如下介绍的就是这种情况。

这些方法的调用者是jQuery,而不是一个包装集。

普通的get

$.get(url, parameters, callback)

通过get方法从服务器端取回需要的东西

url : 服务器端的地址

parameters : 字符串,‘a=1&b=2‘

       对象,{a:1, b:2}

callback : 有两个参数,第一个是服务器端返回的内容,第二个参数是状态码

getJSON

跟get差不多,只不过如果知道服务器端返回的就是一个json对象的话,这个方法比较方便

普通的post

跟get基本一样



完全的ajax

$.ajax(options)

options : 对象

$.ajax(
    {
        url  : ‘/voctrals‘,
        type : ‘POST‘,
        data : {name : ‘tla‘, age : ‘20‘},
        dataType : ‘html‘,
        timeout  : ‘3000‘,
        success  : function(data, status){

        },
        error    : function(){},
        complete : function(){},
        beforeSend : function(){},
        async    : false
    }
);

$.ajaxSetup(properties)

可以为$.ajax的调用设置默认值。

$.ajaxSetup(
    {
        type : ‘POST‘,
        dataType : ‘html‘,
        timeout  : ‘3000‘,
        error    : function(){},
        async    : false
    }
);

Programming In Scala Reading Note 8

时间: 2024-10-13 22:08:37

Programming In Scala Reading Note 8的相关文章

Programming In Scala Reading Note 3

Class and Object class TestClass { val some = 1 } 生成的class文件中会包含一个some()方法,并且这个方法是public的,也就是说类外可以通过类的对象来获取这个some的值 修改: class TestClass { private val some = 1 } 会生成一个private的some()方法,返回值也是some.但是现在类外是访问不到的 类的方法的参数默认是val类型的 副作用大部分用来修改一个属性的值或者开关一个I/O,只

Programming In Scala Reading Note 7

函数和闭包 1 成员方法 java中函数存在的方式,我们给一个类追加一个功能的途径就是给他追加一个方法. 2 本地方法 所谓的本地方法就是存在于一个方法内部的方法. 如果一个类中有一个方法是private的,且只有一个方法使用到他,那么这个方法完全可以被定义为一个本地方法 3 函数式一等公民 方法分为: 1 方法名称 def add 2 方法参数 (a:Int, b:Int) 3 赋值符号 = 4 方法体 a + b 其实,(a:Int, b:Int) => a + b,就构成了一个基本的函数了

Programming In Scala Reading Note 1

Chapter1 and Chapter2 方法定义: def methodName(param1: ParamType, param2: ParamType2, [maybe more]): ReturnType = { // method body } 函数式编程中一个约定俗成的说法就是,方法会返回一个值,不然一个方法的存在就是在产生副作用,而避免副作用是函数式编程的一个初衷. 数组的访问: scala中的数组是Array[ContentType],声明一个数组的时候需要指定数组的大小和所包

Programming In Scala Reading Note 6

Built-in Control Structures 内置控制结构 1 if 控制结构 scala的if跟java的if结构上相同,功能上也差不太多,scala的说法是,if能够返回一个值 val fileName = if (!args.isEmpty) args(0) else "default.txt" 这个语句相对普通,但是这里没有引入一个var,而是使用的val. println(fileName) 等价于 println(if (!args.isEmpty) args(0

Programming In Scala Reading Note 4

Basic Types and Operations Something new according to Java 1 + 2 跟 (1).+(2) 是一样的. val str = "Hello world" str indexOf 'o' 跟 str.indexOf('o')是一样的 indexOf有两种形式的参数,int和str,其中这个int就是用来确定是否存在一个char的.... Any method can be an operator 这句话应该这么理解,str.ind

Programming In Scala Reading Note 2

Learn to programming in funtional way 如果一个方法中存在var的话,那么这个方法很可能就是指令式编程. 如果一个方法中只存在val的话,那么这个方法很可能是函数式编程. 我们需要尝试着把方法中的val删除掉. 副作用,一个方法满足函数式编程的基本要求,但是返回值是一个Unit的话,那么可以肯定这个方法是有副作用的. 而我们应该避免让一个方法有副作用. 不产生副作用就不会对我们有意义,于是我们需要最小化副作用,让每一个方法都干一件事儿,返回给我们一个值. Pr

Programming In Scala Reading Note 5

Functional Object Advantages and Disadvantages of Immutable Object Adv 1. 不可变对象更具容易被推断出来,因为它不会随着时间的变化而造成值的变化. Adv 2. 不可变对象可以自动地传递不会发生变化,而传递可变对象的话,需要首先对可变对象进行备份,以防止在其它过程中对对象的状态造成了修改. Adv 3. 线程不能够更改(corrupt:腐化,堕落)不可变对象的状态,注定他是线程安全的. Adv 4. 不可变对象拥有安全的Ha

thinking in java ----reading note (1)

# thinking in java 4th# reading note# victor# 2016.02.10 chapter 1 对象入门 1.1 抽象的进步    (1) 所有东西都是对象.    (2) 程序是一大堆对象的组合,对象间通过消息联系.    (3) 通过封装现有对象,可制作出新型对象.    (4) 每个对象都有一种类型(某个类的实例).    (5) 同一类的所有对象都能接受相同的消息.    1.2 对象的接口 & 1.3 实现方法的隐藏     接口规定了可对一个特定

jQueryInAction Reading Note 7.

jQuery插件命名规则 jquery.pluginName.js pluginName指代的是插件的名称,如voctrals,tlaliu或者更有意义的名称. 简化jQuery函数的参数列表 如果有一个函数有多个参数,但是并不是每一个参数都是必须的,可以把必须的参数放到前面,不必须的参数包装成一个object. 如: function complex(param, options){ var settings = $.extend( { option1 : defaultValue1, opt