久久精品精选,精品九九视频,www久久只有这里有精品,亚洲熟女乱色综合一区
    分享

    使用jquery ajax代替iframe

     ThinkTank_引擎 2016-01-04

    大家在實際編寫網頁時可能會遇到網頁中需要嵌套網頁的情況,這時候通常想法就是通過iframe標簽。

    但實際用過的人都知道其有種種的不方便,比較直觀的問題就是iframe的自適應高度,這也是處理起來比較麻煩的問題,隨便百度下都是一大串的代碼。

    iframe貌似還有個重大的缺點,那就是搜索引擎的“爬蟲”程序無法解讀這種頁面,當“爬蟲”遇到多個頁面嵌套的網頁時只看到框架卻找不到鏈接,然后認定此網站是死站點并離開。

    學過SEO(搜索引擎優化)的朋友都知道,這對網頁無疑是毀滅性的打擊。

    但是我們確實需要嵌套網頁怎么辦?比如:

    這里拿個微信舉例,用戶都知道當切換下面的功能時頂部的頁頭及詢問的工具欄樣式是不變的。所以我們只需要在用戶點擊下面不同的功能按鈕時改變中間的內容即可。

    那即使不考慮SEO,至少布局上有沒有比iframe更方便的東西呢?jquery ajax就能做到,它不僅能發起請求還能裝載頁面。

     

    稍微介紹下jquery ajax,首先我們來比較下傳統和jquery的ajax的不同

    傳統javascript ajax封裝函數:

    function ajax(method,url,param,flag,returnFun){
      var httpRequest="";
      if(window.XMLHttpRequest){
        httpRequest=new XMLHttpRequest();
      }else if(window.ActiveXObject){
        httpRequest=new ActiveXObject("Microsoft.XMLHTTP");
      }
      httpRequest.onreadystatechange=function(){
        if(httpRequest.readyState==4 && httpRequest.status==200){
          returnFun(httpRequest.responseText);
        }
      };
      if(method=="get"){
        var queryString="";
        if(param !="" || param !=null){
          queryString="?"+param;
        }
        httpRequest.open("get",url+queryString,flag);
        httpRequest.send(null);
      }else if(method=="post"){
        httpRequest.open("post",url,flag);
        httpRequest.setRequestHeader("content-type","application/x-www-form-urlencoded");
        httpRequest.send(param);
      }
    }

    封裝后的寫法:

    ajax("post","../login.do","username="+username+"&pwd="+pwd,true,function(text){}

    參數:1.請求方式 2.請求路徑 3.參數傳遞 4.是否異步刷新 5.回調函數

    jquery ajax:

    $.ajax({ 選項 })

    jquery ajax的選項有很多,簡單例幾個常用的比如:

    data:數據

    cache:是否緩存

    success/error:成功/失敗時的回調函數

    type:請求類型

    url:請求路徑

    要想更深入的了解可以下個jquery API看看。

    比較實用的兩種用法

    第一種用法,對服務器的數據進行操作:

    var username="jack";
      var password=123;
      $.ajax({
        type:"post",
        url:"../insert.do",
        data:"username="+username+"&password="+password,
        success:function(msg){
          if(msg=="ok"){
            alert("complete");
          }	
        }
      })

    這就是個最簡單的通過 node.js 添加數據的 jquery ajax 請求。

    type設置類型為post;url設置請求路徑;data設置要傳遞的參數,注意寫法;如果要查詢數據,回調函數中的回調值msg一般轉換為JSON字符串的格式傳回,要顯示出來通過JSON.parse(msg)轉換為JSON對象。

    第二種用法,就是如何裝載頁面:

         $.ajax({
             url: "index.html",
             cache: false,
             success: function(html){
                 $("#content").html(html);
             }
         });
    

    注意此時回調函數的返回值不再是JSON字符串類型的數據了,而是html網頁。

    做個簡陋的例子:

    <div id="content" style="border: 1px solid red;width: 210px"></div>
        <button onclick="turnPage('weixin.html')">微信</button>
        <button onclick="turnPage('tongxunlu.html')">通訊錄</button>
        <button onclick="turnPage('zhaopengyou.html')">找朋友</button>
        <button onclick="turnPage('wo.html')"></button>
    function turnPage(url){
        $.ajax({
          type:"post",
          url:url,
          success:function(html){
            $("#content").html(html);
          }
        })
      }

    設置一id為content的沒有定義高度的div,下有四個按鈕對應四個不同路徑。路徑值作為參數傳遞給turnPage函數,獲取指定頁面的所有內容,將獲取的內容裝入id為content的div中。

    點擊“微信”跳轉到weixin.html頁面,其中只有一個 h1 標簽:

    點擊“找朋友”跳轉到zhaopengyou.html頁面,其中只有一個 p 標簽

    可以看到,jquery ajax不僅可以將頁面裝載到想要的地方,同時框架高度也是根據裝載頁面內容的高度自動變化的,這也是用jquery ajax來裝載頁面的優勢之一。

    感謝您的瀏覽,希望能對您有所幫助。

      本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發現有害或侵權內容,請點擊一鍵舉報。
      轉藏 分享 獻花(0

      0條評論

      發表

      請遵守用戶 評論公約

      類似文章 更多

      主站蜘蛛池模板: 强奷乱码中文字幕熟女导航| 天天日天天谢天天视2019天干| 丰满人妻AV无码一区二区三区| 波多野结衣在线精品视频| 国产欧美日韩亚洲一区二区三区| 亚洲AV熟妇在线观看| 天天摸天天做天天爽2020| 亚洲日韩性欧美中文字幕| 特级毛片在线大全免费播放| 亚洲综合精品第一页| 爱情岛亚洲AV永久入口首页| 亚洲AV无码一区二区乱子伦| 无码人妻斩一区二区三区| 无码人妻精品一区二区三区久久久 | 亚洲精品一区二区区别| 成人无码影片精品久久久| 精品无码久久久久久尤物| 鲁丝一区二区三区免费| 久久婷婷五月综合97色直播| 国产成人AV大片大片在线播放 | 亚洲熟妇精品一区二区| 搡女人真爽免费视频大全| 亚洲一区二区偷拍精品| 亚洲AV中文无码乱人伦| 丁香五月婷激情综合第九色 | 天天影视网色香欲综合网| 一本色道久久东京热| 日日摸夜夜添夜夜添无| 人妻系列中文字幕精品| 好深好爽办公室做视频| 国产欧美在线一区二区三| 欧美大胆老熟妇乱子伦视频| 爱情岛亚洲论坛成人网站| 亚洲AV成人片不卡无码| 吃奶呻吟打开双腿做受动态图| 国产MD视频一区二区三区| 人人澡人摸人人添| 国产草草影院ccyycom| 久久久亚洲欧洲日产国码农村| 377P欧洲日本亚洲大胆| 精品无码国产污污污免费|