<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專(zhuān)題視頻專(zhuān)題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專(zhuān)題1關(guān)鍵字專(zhuān)題50關(guān)鍵字專(zhuān)題500關(guān)鍵字專(zhuān)題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專(zhuān)題關(guān)鍵字專(zhuān)題tag2tag3文章專(zhuān)題文章專(zhuān)題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專(zhuān)題3
        問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
        當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

        怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互

        來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-27 19:58:50
        文檔

        怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互

        怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互:這次給大家?guī)?lái)怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互,在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。對(duì)于現(xiàn)在APP開(kāi)發(fā)來(lái)說(shuō),目前流行的兩個(gè)方式是原生和H5。就如同之前業(yè)界程序猿爭(zhēng)論的BS和CS之爭(zhēng)一樣,業(yè)界對(duì)于H5和原生也有不小的爭(zhēng)論。對(duì)于
        推薦度:
        導(dǎo)讀怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互:這次給大家?guī)?lái)怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互,在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。對(duì)于現(xiàn)在APP開(kāi)發(fā)來(lái)說(shuō),目前流行的兩個(gè)方式是原生和H5。就如同之前業(yè)界程序猿爭(zhēng)論的BS和CS之爭(zhēng)一樣,業(yè)界對(duì)于H5和原生也有不小的爭(zhēng)論。對(duì)于
        這次給大家?guī)?lái)怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互,在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。

        對(duì)于現(xiàn)在APP開(kāi)發(fā)來(lái)說(shuō),目前流行的兩個(gè)方式是原生和H5。就如同之前業(yè)界程序猿爭(zhēng)論的BS和CS之爭(zhēng)一樣,業(yè)界對(duì)于H5和原生也有不小的爭(zhēng)論。對(duì)于前者的爭(zhēng)論在于PC端,后者在于移動(dòng)端上體現(xiàn)。

        那一個(gè)APP適合用什么技術(shù)來(lái)開(kāi)發(fā),主要通過(guò)下面幾點(diǎn)來(lái)判斷:
        1、APP對(duì)于文字的要求(格式加粗,字體多樣性)是否高,H5可以很好的實(shí)現(xiàn),而原生則會(huì)弱于H5;
        2、APP對(duì)于交互(頁(yè)面切換,部分版塊變化)的要求是否高,H5通常在交互上比較吃力,有交互的需求是基本上是在加載一個(gè)網(wǎng)頁(yè),而原生來(lái)說(shuō)是很簡(jiǎn)單的一個(gè)過(guò)程,只是加載變化部分;
        3、APP對(duì)于網(wǎng)絡(luò)的要求(網(wǎng)絡(luò)較差、是否離線操作)的敏感度,原生可以做到,H5雖然能做,但難度較大;
        4、APP對(duì)于硬件(麥克風(fēng)、攝像頭、重力感應(yīng)器)時(shí)候有硬性要求,原生完美實(shí)現(xiàn),未來(lái)有新的功能也能有很好的擴(kuò)展,而H5望塵莫及;
        5、APP對(duì)于一些活動(dòng)的更換頻繁程度,對(duì)此H5扳回一局,H5對(duì)此更換十分方便,維護(hù)方便;
        6、當(dāng)然就是預(yù)算和對(duì)時(shí)間的要求,用戶體驗(yàn)度要求不高的話,那可以用H5來(lái)做。

        所以綜上所述,對(duì)于交互性較強(qiáng)建議原生態(tài)開(kāi)發(fā),而那些大量數(shù)據(jù)展示的,做H5嵌套進(jìn)原生框架中,這樣APP會(huì)有良好的體驗(yàn)。同樣在這種情況下,混合開(kāi)發(fā)對(duì)于全原生態(tài)開(kāi)發(fā)下來(lái)說(shuō)是縮短工期,而對(duì)比H5來(lái)說(shuō),將來(lái)的可擴(kuò)展性和用戶體驗(yàn)得到保證。

        基于上篇http接口開(kāi)發(fā)的博客,這篇文章給大家詳解,H5頁(yè)面如何調(diào)用接口對(duì)數(shù)據(jù)進(jìn)行交互以及與原生態(tài)鑲嵌。

        首先展示兩個(gè)我自己編寫(xiě)的請(qǐng)求接口、獲得數(shù)據(jù)解析之后填充到H5頁(yè)面的通用方法(json格式),可以復(fù)制直接使用,已寫(xiě)好注釋

        //請(qǐng)求接口function ajaxForJson(url, op, jsonData, array_params_list) {
         $.post(myConfigHost + url, { "op": op, "jsonData": encodeURIComponent(JSON.stringify(jsonData)) }, function (data)
         { if (typeof (array_params_list) == 'undefined' || array_params_list == "" || array_params_list==null)
         {
         ajaxForJsonCommon(data,"#p_temp_items", "#pMain", "");
         } else
         { if (array_params_list.length > 0)
         { for (var p = 0; p < array_params_list.length; p++)
         {
         ajaxForJsonCommon(data,array_params_list[p]["template_id"], array_params_list[p]["show_id"], array_params_list[p]["data_name"]);
         }
         }
         }
         });
        }//數(shù)據(jù)解析、模板填充function ajaxForJsonCommon(data,template_id,show_id,data_name)
        { var temp_items = $(template_id).html();//獲取模板內(nèi)容
         var finalHTML = ""; //最終html填充好的字符串
         var list = eval('(' + data + ')'); //這句固定這么寫(xiě),兼容所有瀏覽器,將字符串,轉(zhuǎn)成js的json對(duì)象,可以通過(guò).的方式得到數(shù)組或者類(lèi)對(duì)象
         if (data_name != "") {
         list = list[data_name];
         } for (var i = 0; i < list.length; i++) { //這句幾乎也是固定,后面自行封裝
         var temp_item = temp_items; //每次都是用新模版,避免模版只能使用一次,用到replace函數(shù)
         for (var itemKey in list[i]) { //js是有in語(yǔ)法的,用于提出json里的key-value
         if (typeof (wangjifengHandler_key) != 'undefined') {
         wangjifengHandler_key(itemKey, list[i], template_id);
         } for (var m = 0; m < 4; m++) {
         temp_item = temp_item.replace("{" + itemKey + "}", list[i][itemKey]);
         }
         }
         finalHTML += temp_item;//拼接內(nèi)容 }
         $(show_id).html(finalHTML);//將內(nèi)容填充到html模板內(nèi)
         if (typeof (wangjifengHandler) != 'undefined') {
         wangjifengHandler(template_id);
         }
        }

        1.查詢功能

        請(qǐng)求通用方法獲得已填充好的html

        GetQueryString()方法用于接收http請(qǐng)求所帶的參數(shù),便于與原生態(tài)進(jìn)行嵌套。 例如請(qǐng)求地址:http://127.0.0.1:8002/h5app/MyStudy.html?UserId=123456 那么就會(huì)獲得UserId的值。

        ajaxForJson()這個(gè)方法就是我們剛剛寫(xiě)的請(qǐng)求接口通用方法,第一個(gè)值為接口地址,第二個(gè)值為接口名稱(chēng),第三個(gè)值為接口指定格式的請(qǐng)求數(shù)據(jù)(本篇文章都是json格式)

        我們先F12看下請(qǐng)求接口之后返回的數(shù)據(jù)

        json格式數(shù)組的數(shù)據(jù)。包含CourseId,CourseImage,CourseName,剛剛我寫(xiě)的兩個(gè)通用方法派上用場(chǎng)了。通過(guò)他們,可以實(shí)現(xiàn)請(qǐng)求接口、獲得數(shù)據(jù)解析之后填充到H5頁(yè)面,意味著我們這個(gè)時(shí)候什么都不用做,只需要到H5頁(yè)面做數(shù)據(jù)展示就OK了。

        <body>
         <!--
         作者:Wangjifeng
         時(shí)間:2018-03-19
         描述:html模版,默認(rèn)隱藏,只為了讀取出里面的模版html -->
         <p id="p_temp_items" style="display: none;">
         <p class="content">
         <p id="left"><img src="{CourseImage}" width="118.5px" height="67px"></p>
         <p id="right">{CourseName}</p>
         </p>
         </p>
         <p id="pMain" class="main">
         <!--<p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃</p>
         </p>
         <p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃</p>
         </p>
         <p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃</p>
         </p>
         <p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃</p>
         </p>
         <p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃</p>
         </p>
         <p class="content">
         <p id="left"><img src="img/kc_bg01.png" width="118.5px" height="67px"></p>
         <p id="right">阿里前端P6架構(gòu)師培養(yǎng)計(jì)劃王繼峰開(kāi)發(fā)創(chuàng)建的頁(yè)面H5開(kāi)發(fā)的頁(yè)面</p>
         </p>-->
         </p>
         </body>

        有幾個(gè)注意的地方

        1.需要將以前的p 添加id="pMain",p里內(nèi)容注釋

        2.新增一個(gè)p id="p_temp_items" display=“none”

        3.將注釋內(nèi)容復(fù)制到p里(一個(gè)對(duì)象就夠了),再以{屬性名稱(chēng)}進(jìn)行數(shù)據(jù)填寫(xiě)就可以了。這樣的操作主要是為了配合兩個(gè)通用方法進(jìn)行html模板填充。

        我們來(lái)看看效果,一個(gè)簡(jiǎn)單的查詢就完成了~

        2.編輯功能

        首先來(lái)看看頁(yè)面,兩個(gè)開(kāi)關(guān),實(shí)現(xiàn)對(duì)狀態(tài)的更改操作

        我們要對(duì)這兩個(gè)狀態(tài)進(jìn)行更改操作,那么首先進(jìn)入頁(yè)面時(shí),就要獲取到這兩個(gè)狀態(tài)的值進(jìn)行開(kāi)關(guān)的綁定。并且用js進(jìn)行取值。先看看請(qǐng)求后獲得的json

        EnableCourse為課程展示的值,EnableInfo為資料展示的值。ajax請(qǐng)求獲取到了,那么怎么利用js進(jìn)行取值呢?

        <script type="text/javascript"> var UserId = GetQueryString("UserId");
         ajaxForJson("/user/userInfo.aspx", "myInfo", { "UserId": UserId
         }); var EnableCourse = 1; //課程展示狀態(tài)
         var EnableInfo = 1; //資料展示狀態(tài)
         //獲取課程展示、資料展示狀態(tài)
         function wangjifengHandler_key(key, item) { if(key == "EnableCourse") {
         EnableCourse = item[key];
         } else if(key == "EnableInfo") {
         EnableInfo = item[key];
         }
         }</script>
        wangjifengHandler_key為通用方法已經(jīng)編寫(xiě)好的取值方法,所以直接調(diào)用,key-value的格式,這樣就可以輕易利用通用方法取你想要的值并進(jìn)行存儲(chǔ)了,方便各種操作。

        我們?cè)倩剡^(guò)頭看看通用方法中有一個(gè)名為wangjifengHandler()的方法,他在數(shù)據(jù)取到并填充至html模板之后進(jìn)行調(diào)用綁定。這個(gè)時(shí)候我們就可以在html里用它執(zhí)行各種增刪改操作了,每次提交請(qǐng)求之后,這個(gè)方法都會(huì)執(zhí)行

         //回調(diào)函數(shù),在模版填充完畢,自動(dòng)調(diào)用
         function wangjifengHandler() { //進(jìn)行開(kāi)關(guān)圖片的綁定
         if(EnableCourse == 0) {
         $(".img_course").attr("src", "img/switch_close.png");
         } if(EnableCourse == 1) {
         $(".img_course").attr("src", "img/switch_open.png");
         } if(EnableInfo == 0) {
         $(".img_Info").attr("src", "img/switch_close.png");
         } if(EnableInfo == 1) {
         $(".img_Info").attr("src", "img/switch_open.png");
         } //綁定反復(fù)單擊事件
         $(".img_course,.img_Info").click(function() { var value_scr = $(this).attr("src"); var value_src_open = $(this).attr("src_open"); var value_src_close = $(this).attr("src_close"); var value_src_type = $(this).attr("value_src_type"); var type = ""; var type_state = ""; if(value_src_type == "kczs") { //課程展示
         type = "setEnableCourse";
         type_state = EnableCourse;
         } else { //資料展示
         type = "setEnableInfo";
         type_state = EnableInfo;
         } //課程展示、資料展示狀態(tài)設(shè)置
         $.post(myConfigHost + "/user/userInfo.aspx", { "op": type, "jsonData": encodeURIComponent(JSON.stringify({ "UserId": UserId, "EnableState": type_state
         }))
         }, function(data) { var dataObj = eval("(" + data + ")"); //轉(zhuǎn)換為json對(duì)象
         if(type == "setEnableCourse") {
         EnableCourse = dataObj.State;
         } else {
         EnableInfo = dataObj.State;
         }
         }); if(value_scr == value_src_open) {
         $(this).attr("src", value_src_close);
         } else {
         $(this).attr("src", value_src_open);
         }
         });
         }

        前面雜七雜八的代碼可以忽略~主要是利用前面wangjifengHandler_key()方法取到兩個(gè)我們想要的值后,然后在wangjifengHandler()中post提交給接口執(zhí)行修改操作,根據(jù)接口響應(yīng)狀態(tài),再進(jìn)行頁(yè)面綁定。

        刪除也和這一模一樣,利用wangjifengHandler_key()取到你所需的值,于wangjifengHandler()中post提交,執(zhí)行之后制動(dòng)重新加載頁(yè)面。

        相信看了本文案例你已經(jīng)掌握了方法,更多精彩請(qǐng)關(guān)注Gxl網(wǎng)其它相關(guān)文章!

        推薦閱讀:

        max-width和min-width的使用技巧

        text-align如何實(shí)現(xiàn)兩端對(duì)齊

        聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互

        怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互:這次給大家?guī)?lái)怎樣在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互,在H5頁(yè)面實(shí)現(xiàn)數(shù)據(jù)交互的注意事項(xiàng)有哪些,下面就是實(shí)戰(zhàn)案例,一起來(lái)看一下。對(duì)于現(xiàn)在APP開(kāi)發(fā)來(lái)說(shuō),目前流行的兩個(gè)方式是原生和H5。就如同之前業(yè)界程序猿爭(zhēng)論的BS和CS之爭(zhēng)一樣,業(yè)界對(duì)于H5和原生也有不小的爭(zhēng)論。對(duì)于
        推薦度:
        • 熱門(mén)焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門(mén)推薦

        專(zhuān)題
        Top
        主站蜘蛛池模板: 免费高清国产视频| 日本亚洲高清乱码中文在线观看| 少妇性饥渴无码A区免费| 亚洲日韩在线观看免费视频| 添bbb免费观看高清视频| 男人的天堂亚洲一区二区三区| 亚洲成人网在线播放| 免费人成网站在线观看10分钟| 亚洲男人天堂2022| 免费无码一区二区三区蜜桃大| 免费在线观看亚洲| 国产亚洲日韩一区二区三区| 久久九九全国免费| 亚洲色图.com| 免费视频淫片aa毛片| 日日摸夜夜添夜夜免费视频| 亚洲精品无码激情AV| 免费91最新地址永久入口| 亚洲国产精品成人精品软件| 天堂在线免费观看中文版| 成年网在线观看免费观看网址| 亚洲精品色午夜无码专区日韩| 999久久久免费精品播放| 亚洲高清有码中文字| 亚洲av无码成人精品区在线播放| a毛看片免费观看视频| 亚洲国产亚洲综合在线尤物| 日本一道在线日本一道高清不卡免费| 一个人看的免费视频www在线高清动漫 | 国产91久久久久久久免费| 成在人线av无码免费高潮水| 亚洲自偷精品视频自拍| 国产亚洲精品免费| 国产99视频精品免费专区| 亚洲欧美日韩综合俺去了| 亚洲熟妇丰满多毛XXXX| 24小时日本在线www免费的| 九九热久久免费视频| 亚洲六月丁香婷婷综合| 久久久久久A亚洲欧洲AV冫| 在人线av无码免费高潮喷水|