1. 程式人生 > 實用技巧 >用LVS負載均衡群集來實現Keepalives部署

用LVS負載均衡群集來實現Keepalives部署

jQuery


1. jQuery是js庫,
  庫:相當於java的工具類,庫是存放東西的, jQuery是存放js程式碼的地方, 放的用js程式碼寫的function

2. dom物件和jquery物件
  dom物件,使用javascript的語法建立的物件叫做dom物件, 也就是js物件。
    var obj= document.getElementById("txt1"); obj是dom物件,也叫做js物件
      obj.value;

  jquery物件: 使用jquery語法表示物件叫做jquery物件, 注意:jquery表示的物件都是陣列。
    例如 var jobj = $("#txt1") , jobj就是使用jquery語法表示的物件。 也就是jquery物件。 它是一個數組。


     現在陣列中就一個值。

dom物件可以和jquery物件相互的轉換。
  dom物件可以轉為jquery , 語法: $(dom物件)

1 function btnClick() {
2             var obj=document.getElementById("btn");
3             alert("使用dom物件獲取的屬性="+obj.value);
4             //把dom物件轉化為jQuery物件
5             var $jobj=$(obj);
6 //呼叫jQuery中的函式,獲取value值 7 alert("使用jQuery物件獲取的屬性="+$jobj.val()) 8 9 }

  jquery物件也可以轉為dom物件, 語法: 從陣列中獲取第一個物件, 第一個物件就是dom物件, 使用[0]或者get{0).

1  function btnClick() {
2             //使用jQuery的語法,獲取頁面中的dom物件
3             var obj = $("#txt")[0]; //從陣列中獲取下標為0的dom物件,只有一個數據
4             //
var obj=$("#txt").get(0); 5 var num = obj.value; 6 obj.value = num * num;

為什麼要進行dom和jquery的轉換:目的是要使用物件的方法,或者方法。
當你的dom物件時,可以使用dom物件的屬性或者方法, 如果你要想使用jquery提供的函式,必須是jquery物件才可以。

3.選擇器: 就是一個字串, 用來定位dom物件的。定位了dom物件,就可以通過jquery的函式操作dom

常用的選擇器:

1) id選擇器, 語法: $("#dom物件的id值")
通過dom物件的id定位dom物件的。 通過id找物件, id在當前頁面中是唯一值。

2) class選擇器, 語法: $(".class樣式名)
class表示css中的樣式, 使用樣式的名稱定位dom物件的。

3) 標籤選擇器, 語法: $("標籤名稱")
使用標籤名稱定位dom物件的

  4) 全部選擇器,語法: $("*")

  

  5) 混合選擇器,語法: $("選擇器 名稱,選擇器 名稱")

  

4. 表單選擇器,
使用<input>標籤的type屬性值,定位dom物件的方式。
  語法: $(":type屬性值")
例如: $(":text") ,選擇的是所有的單行文字框,
  $(":button") ,選擇的是所有的按鈕。

  

  

  

5.過濾器:在定位了dom物件後,根據一些條件篩選dom物件。
過濾器有是一個字串,用來篩選dom物件的。
過濾器不能單獨使用, 必須和選擇器一起使用。

1)$("選擇器:first") : 第一個dom物件

2)$("選擇器:last"): 陣列中的最後一個dom物件

3)$("選擇器:eq(陣列的下標)") :獲取指定下標的dom物件

4)$("選擇器:lt(下標)") : 獲取小於下標的所有dom物件

5)$("選擇器:gt(下標)") : 獲取大於下標的所有dom物件

6.表單屬性過濾器: 根據表單中dom物件的狀態情況,定位dom物件的。
  啟用狀態, enabled ,

  

  不可用狀態 disabled

  

  選擇狀態 , checked , 例如radio, checkbox

  

7.each語法
  1). 可以對 陣列, json ,dom陣列迴圈處理。 陣列, json中的每個成員都會呼叫一次處理函式。
    var arr = { 1, 2, 3} //陣列
    var json = {"name":"lisi","age":20 }
    var obj = $(":text");

  語法: $.each( 迴圈的內容, 處理函式 ) :表示使用jquery的each,迴圈陣列,每個陣列成員,
都會執行後面的“處理函式”一次。

  $: 相當於是java的一個類名
  each:就是類中的靜態方法。
  靜態方法呼叫,可以使用 類名.方法名稱

  處理函式:function(index, emelent) :
    index, element都是自定義的形參, 名稱自定義。
      index:迴圈的索引
      element:陣列中的成員

  1)js迴圈陣列:
    for(var i=0;i<arr.length;i++){
      var item = arr[i]; //陣列成員
      //運算元組成員
      shuchu( i , item);
      }

    function shuchu(index, emlemnt){
    輸出index ,element
    }

  2).迴圈jquery物件, jquery物件就是dom陣列
    jquery物件.each( function(index,element) {} )  

1           //迴圈普通陣列,非dom陣列
2                 var  arr=[1,2,3];
3                 $.each(arr,function (index,element) {
4                 alert("迴圈變數,"+index+"=========陣列成員:"+element);
5 
6                 });
1          //迴圈json
2                 var json={"name":"張三","age":20};
3                 $.each(json,function (i,n) {
4                     alert("i是key="+i+",n是value="+n)
5                 })
1          //迴圈dom陣列
2                 var domArray=$(":text"); //dom陣列
3                 $.each(domArray,function (i,n) {
4                 alert("i="+i+"  ,n="+n.value);
5                 });
1          //迴圈jQuery物件
2                 $(":text").each(function (i,n) {
3                     alert("i="+i+",n="+n.value);
4                 });

8. jquery中給dom物件繫結事件
  1) $(選擇器).事件名稱( 事件的處理函式)
$(選擇器):定位dom物件, dom物件可以有多個, 這些dom物件都繫結事件了
事件名稱:就是js中事件去掉on的部分, 例如 js中的單擊事件 onclick(),
jquery中的事件名稱,就是click,都是小寫的。
事件的處理函式:就是一個function ,當事件發生時,執行這個函式的內容。

例如給id是btn的按鈕繫結單擊事件
  $("#btn").click(funtion(){
    alert("btn按鈕單擊了")
  })

  

  2) on 事件繫結
$(選擇器).on( 事件名稱 , 事件的處理函式)

  事件名稱: 就是js事件中去掉on的部分, 例如js中onclick ,這裡就是click
  事件的處理函式: function 定義。

  例如, <input type="button" id="btn">
    $("#btn").on("click", function() { 處理按鈕單擊 } )

1         $("#btn1").click(function () {
2              //使用append增加一個dom物件
3                 $("#mydiv").append("<input type='button' id='newBtn' value='我是新加入的按鈕'/>")
4                 //使用on給按鈕繫結事件
5                 $("#newBtn").on("click",function () {
6                     alert("新新增的按鈕被點選了")
7                 })
8 
9             });

9. 使用jquery的函式,實現ajax請求的處理。
沒有jquery之前,使用XMLHttpRequest做ajax , 有4個步驟。 jquery簡化了ajax請求的處理。
使用三個函式可以實現ajax請求的處理。

  1) $.ajax() : jquery中實現ajax的核心函式。
  2) $.post() : 使用post方式做ajax請求。
  3) $.get() : 使用get方式傳送ajax請求。

    $.post()和$.get() 他們在內部都是呼叫的 $.ajax()


介紹 $.ajax函式的使用, 函式的引數表示請求的url, 請求的方式,引數值等資訊。
$.ajax()引數是一個json的結構。

例如: $.ajax( {名稱:值, 名稱1:值1..... } )

例如: $.ajax( { async:true ,
    contentType:"application/json" ,
    data: {name:"lisi",age:20 },
    dataType:"json",
    error:function(){
      請求出現錯誤時,執行的函式
    },
    success:function( data ) {
      // data 就是responseText, 是jquery處理後的資料。

    },
    url:"bmiAjax",
    type:"get"
  } )

json結構的引數說明

  1)async:是一個boolean型別的值, 預設是true ,表示非同步請求的。可以不寫async這個配置項
xmlHttp.open(get,url,true),第三個引數一樣的意思。
  2)contentType: 一個字串,表示從瀏覽器傳送伺服器的引數的型別。 可以不寫。
例如你想表示請求的引數是json格式的, 可以寫application/json
  3)data: 可以是字串,陣列,json,表示請求的引數和引數值。 常用的是json格式的資料
  4)dataType: 表示期望從伺服器端返回的資料格式,可選的有: xml , html ,text ,json
當我們使用$.ajax()傳送請求時, 會把dataType的值傳送給伺服器, 那我們的servlet能夠
讀取到dataType的值,就知道你的瀏覽器需要的是 json或者xml的資料,那麼伺服器就可以
返回你需要的資料格式。
  5)error: 一個function ,表示當請求發生錯誤時,執行的函式。
    error:function() { 發生錯誤時執行 }

  6)sucess:一個function , 請求成功了,從伺服器端返回了資料,會執行success指定函式
之前使用XMLHttpRequest物件, 當readyState==4 && status==200的時候。

  7)url:請求的地址
  8)type:請求方式,get或者post, 不用區分大小寫。 預設是get方式。

主要使用的是 url , data ,dataType, success .

相關程式碼:

 1 <script type="text/javascript">
 2 $(function () {
 3    $("#btn").click(function () {
 4        //獲取dom的value值
 5        var proid =$("#proid").val();
 6        //發起ajax請求
 7        $.ajax({
 8            url:"queryjson",
 9            data:{
10                "proid":proid
11            },
12            dataType:"json",
13            success:function (resp) {
14                //alert(resp);
15                $("#proname").val(resp.name);
16                $("#projiancheng").val(resp.jiancheng);
17                $("#proshenghui").val(resp.shenghui);
18            }
19        })
20    })
21 });
22 </script>

關於優化:可以封裝執行函式程式碼,使程式碼簡潔,乾淨

post請求例子:

    //發請求獲取資料 post方式
          $.post("querycity",{proid:provinceId},callback,"json")
        })
callback為封裝後的執行程式碼
  //定義一個處理返回資料的函式
      function callback(resp) {
          // alert(resp)
          $("#city").empty();
          $.each(resp,function (i,n) {
            $("#city").append("<option value='"+n.id+"'>"+n.name+"</option>");
          })
      }