2018-01-29 微信小程序小程序頁面節(jié)點最大數(shù)量、ECharts使用乎莉、Ajax 返回任意類型值送讲、窗體設(shè)計中設(shè)置表格某一列數(shù)據(jù)長度奸笤、AngularJS 過濾器

第一組:楊昊 微信小程序小程序頁面節(jié)點最大數(shù)量

做前端開發(fā)的同學(xué)惋啃,都遇到過頁面節(jié)點過多,從而導(dǎo)致頁面加載很慢监右,或者瀏覽器直接崩潰边灭。

在小程序開發(fā)中,下拉刷新數(shù)據(jù)的用法應(yīng)該比較多健盒,那么小程序頁面節(jié)點最大數(shù)量又是多大呢绒瘦?

在網(wǎng)上查了一下,看了看前輩們踩的坑扣癣,發(fā)現(xiàn)大量數(shù)據(jù)直接扔到小程序模板里面去遍歷(wx:for)惰帽,開發(fā)者工具的日志里面有可能直接報錯:invokeWebviewMethod 數(shù)據(jù)傳輸長度為 1233778 已經(jīng)超過最大長度 1048576


至于為什么是1048576這個長度,恐怕要問微信團(tuán)隊的底層實現(xiàn)了父虑,應(yīng)該是考慮到性能問題该酗,不允許一次性加載這么多節(jié)點到頁面上~

注:巧的是1048576B=1M,excel的最大行數(shù)也是1048576行士嚎,也許微信這個節(jié)點長度用這個值是經(jīng)過考慮之后的一個值呜魄。


第二組:葉佳意 ECharts使用

ECharts,一個使用 JavaScript 實現(xiàn)的開源可視化庫莱衩,可以流暢的運行在 PC 和移動設(shè)備上爵嗅,兼容當(dāng)前絕大部分瀏覽器(IE8/9/10/11,Chrome笨蚁,F(xiàn)irefox睹晒,Safari等)趟庄,底層依賴輕量級的矢量圖形庫 ZRender,提供直觀伪很,交互豐富岔激,可高度個性化定制的數(shù)據(jù)可視化圖表。

使用ECharts畫圖表步驟如下:

一是掰、獲取 ECharts

你可以通過以下幾種方式獲取 ECharts虑鼎。

1、從官網(wǎng)下載界面選擇你需要的版本下載键痛,根據(jù)開發(fā)者功能和體積上的需求炫彩,我們提供了不同打包的下載,如果你在體積上沒有要求絮短,可以直接下載完整版本江兢。開發(fā)環(huán)境建議下載源代碼版本,包含了常見的錯誤提示和警告丁频。
2杉允、在 ECharts 的 GitHub 上下載最新的 release 版本,解壓出來的文件夾里的 dist 目錄里可以找到最新版本的 echarts 庫席里。
3叔磷、通過 npm 獲取 echarts,npm install echarts --save奖磁。
4改基、cdn 引入,你可以在 cdnjs咖为,npmcdn 或者國內(nèi)的 bootcdn 上找到 ECharts 的最新版本秕狰。

二、引入 ECharts

ECharts 3 開始不再強(qiáng)制使用 AMD 的方式按需引入躁染,代碼里也不再內(nèi)置 AMD 加載器鸣哀。因此引入方式簡單了很多,只需要像普通的 JavaScript 庫一樣用 script 標(biāo)簽引入吞彤。

<!DOCTYPE html><html><head>
    <meta charset="utf-8">
    <!-- 引入 ECharts 文件 -->
<script src="echarts.min.js"></script></head></html>
三我衬、繪制一個簡單的圖表

在繪圖前我們需要為 ECharts 準(zhǔn)備一個具備高寬的 DOM 容器。

<body>
    <!-- 為 ECharts 準(zhǔn)備一個具備大斜钙琛(寬高)的 DOM -->
    <div id="main" style="width: 600px;height:400px;"></div></body>

然后就可以通過 echarts.init 方法初始化一個 echarts 實例并通過 setOption 方法生成一個簡單的柱狀圖低飒,下面是完整代碼。

<!DOCTYPE html><html><head>
    <meta charset="utf-8">
    <title>ECharts</title>
    <!-- 引入 echarts.js -->
    <script src="echarts.min.js"></script></head><body>
    <!-- 為ECharts準(zhǔn)備一個具備大卸巍(寬高)的Dom -->
    <div id="main" style="width: 600px;height:400px;"></div>
    <script type="text/javascript">
        // 基于準(zhǔn)備好的dom褥赊,初始化echarts實例
        var myChart = echarts.init(document.getElementById('main'));

        // 指定圖表的配置項和數(shù)據(jù)
        var option = {
            title: {
                text: 'ECharts 入門示例'
            },
            tooltip: {},
            legend: {
                data:['銷量']
            },
            xAxis: {
                data: ["襯衫","羊毛衫","雪紡衫","褲子","高跟鞋","襪子"]
            },
            yAxis: {},
            series: [{
                name: '銷量',
                type: 'bar',
                data: [5, 20, 36, 10, 10, 20]
            }]
        };

        // 使用剛指定的配置項和數(shù)據(jù)顯示圖表。
        myChart.setOption(option);
    </script></body></html>

這樣你的第一個圖表就誕生了莉恼!


第三組: Ajax 返回任意類型值

在使用Ajax過程中拌喉,有的方法需要傳回string速那,有的要傳回model或model[];但是在我們最開始設(shè)置返回值result的時候只能設(shè)置一種類型尿背,那這樣返回不同類型的值就得新建一個一般處理程序端仰,這樣就會顯得很不簡潔。

那在設(shè)置返回值result的時候有沒有一種可以設(shè)置成任意類型的方法呢?

答案是有田藐,AjaxResult就能做到荔烧。

public class PmAsCheckTaskList: BaseHandler {
    public static AjaxResult result = new AjaxResult() {
        IsSuccess = true;
    };
    public override void ProcessRequest(HttpContext context) {
        try {
            switch (context.Request["method"].ToLower()) {
                //獲得檢查條目 輸入?yún)?shù) 標(biāo)簽 返回 Tid 條目 依據(jù)
            case "getjctm":
                result = GetJctmListBySepara(context);
                break;
            }
        } catch(Exception e) {
            //日志記錄
            result.IsSuccess = false;
            result.Message = e.Message;
        }
        context.Response.Write(result.ToJson());
    }
//獲得檢查條目 輸入?yún)?shù) 標(biāo)簽 返回 Tid 條目 依據(jù)
public AjaxResult GetJctmListBySepara(HttpContext context) {
    LoongAir.Model.PmAsCheckEntry[] insPace = new PmAsCheckEntry[] {};
    //標(biāo)簽篩選分支
    //選擇標(biāo)簽返回默認(rèn)帶出的檢查條目 Tid數(shù)組
    string labels = context.Request["labels"];
    if (labels != null) {
        //選擇的關(guān)系運算符
        string relchr = string.IsNullOrEmpty(context.Request["relchr"]) ? "||": context.Request["relchr"];
        long[] labelTids = Array.ConvertAll(labels.Trim(',').Split(','), s = >s.ToLong());
        insPace = LoongAir.DB.PmAsCheckEntry.QueryEntryByMutiLabelsAndRelChr(labelTids, relchr);
    }
    //條目內(nèi)容篩選分支
    string entrycontent = context.Request["entrycontent"];
    if (entrycontent != null) {
        insPace = LoongAir.DB.PmAsCheckEntry.selectEntries(loginUser, null, new LoongAir.Model.PmAsCheckEntry() {
            PmAsCheckEntryContent = entrycontent
        });
    }

    //返回 檢查條目的Tid 條目 依據(jù)
    //PmAsCheckEntryContent PmAsCheckAccordance
    DataTable dt = new DataTable();
    dt.Columns.Add("Tid", typeof(string));
    dt.Columns.Add("PmAsCheckEntryContent", typeof(string));
    dt.Columns.Add("PmAsCheckAccordance", typeof(string));
    foreach(var ins in insPace) {
        DataRow dr = dt.NewRow();
        dr["Tid"] = ins.Tid;
        dr["PmAsCheckEntryContent"] = ins.PmAsCheckEntryContent;
        dr["PmAsCheckAccordance"] = ins.PmAsCheckAccordance;
        dt.Rows.Add(dr);
    }
    result.Data = dt;
    return result;
}

另外,如果我們需要從兩張表里分別選幾個字段拼成一個類似于視圖一樣的表汽久,在這里鹤竭,用DataTable直接拼接就可以做到。


第四組:李俊 窗體設(shè)計中設(shè)置表格某一列數(shù)據(jù)長度

在GridView表格當(dāng)中新增數(shù)據(jù)時景醇,由于所有數(shù)據(jù)最終都要存入數(shù)據(jù)庫中臀稚,而數(shù)據(jù)庫表中對每個字段的數(shù)據(jù)長度進(jìn)行了設(shè)置,如果對新增數(shù)據(jù)在前臺不進(jìn)行數(shù)據(jù)限制的話三痰,在插入數(shù)據(jù)庫的時候就會出錯吧寺。因此,需要對GridView中單元格的數(shù)據(jù)長度進(jìn)行設(shè)置散劫,超過則提示過長稚机,并且返回原值(修改時返回修改前的數(shù)據(jù),新增時返回空數(shù)據(jù)):

/// <summary>
/// 數(shù)據(jù)長度檢
/// </summary>
/// <param name="data">數(shù)據(jù)</param>
/// <param name="lengthLimit">長度限制</param>
/// <param name="caption">列名</param>
private void checkDataLength(string data, int lengthLimit, string caption, int row, string column)
   {
      if (data.Length > lengthLimit)
         {
            XtraMessageBox.Show(caption + "不能超過" + lengthLimit + "個字符");
            //返回原值
            UIT4007 ACTypeInfo = new UIT4007();
        Loc.Support.GetT4007SearchPara SearchParam = new Loc.Support.GetT4007SearchPara
            {
               UIT_Model = ACTypeInfo
            };
  UIModelListResult<UIT4007> originalData = DispatchHandler.GetAcTypeList(SearchParam);
                //對原數(shù)據(jù)進(jìn)行更改失敗的時候返回原值
            if (row < originalData.List.Length)
            {
              //取對應(yīng)字段的值
              Model.UIT4007 test = originalData.List[row];
              string testValue = "";
              Type type = typeof(Model.UIT4007);
              System.Reflection.PropertyInfo property = type.GetProperty(column);
              if (property != null)
                 {
                    object o = property.GetValue(test, null);
                    testValue = (o == null ? "" : o.ToString());
                 }
              //修改失敗的單元格數(shù)據(jù)重新返回原值舷丹,方法是通過以原值進(jìn)行賦值
              gridView1.SetRowCellValue(row, column, testValue);
              gridView1.RefreshRow(row);
                }
             //在新增數(shù)據(jù)過程中抒钱,對單元格增加失敗時返回單元格最初空值狀態(tài)
               else
                {
                    gridView1.SetRowCellValue(row, column, "");
                    gridView1.RefreshRow(row);
                }
            }
        }

第五組:周倩宇 AngularJS 過濾器

過濾器可以使用一個管道字符(|)添加到表達(dá)式和指令中⊙湛可用于轉(zhuǎn)換數(shù)據(jù):

過濾器 描述
currency 格式化數(shù)字為貨幣格式。
filter 從數(shù)組項中選擇一個子集仗扬。
lowercase 格式化字符串為小寫症概。
orderBy 根據(jù)某個表達(dá)式排列數(shù)組。
uppercase 格式化字符串為大寫早芭。
  1. uppercase彼城,lowercase 大小寫轉(zhuǎn)換
    {{ "lower cap string" | uppercase }} // 結(jié)果:LOWER CAP STRING
    {{ "TANK is GOOD" | lowercase }} // 結(jié)果:tank is good

  2. date 格式化
    {{1490161945000 | date:"yyyy-MM-dd HH:mm:ss"}} // 2017-03-22 13:52:25

  3. number 格式化(保留小數(shù))
    {{149016.1945000 | number:2}}

  4. currency貨幣格式化
    {{ 250 | currency }} // 結(jié)果:$250.00
    {{ 250 | currency:"RMB ¥ " }} // 結(jié)果:RMB ¥ 250.00

  5. filter查找:輸入過濾器可以通過一個管道字符(|)和一個過濾器添加到指令中,該過濾器后跟一個冒號和一個模型名稱退个。filter 過濾器從數(shù)組中選擇一個子集
    // 查找name為iphone的行
    {{ [{"age": 20,"id": 10,"name": "iphone"},
    {"age": 12,"id": 11,"name": "sunm xing"},
    {"age": 44,"id": 12,"name": "test abc"}
    ] | filter:{'name':'iphone'} }}

  6. limitTo 截取
    {{"1234567890" | limitTo :6}} // 從前面開始截取6位
    {{"1234567890" | limitTo:-4}} // 從后面開始截取4位

  7. orderBy 排序

    • // 根id降序排
      {{ [{"age": 20,"id": 10,"name": "iphone"},
      {"age": 12,"id": 11,"name": "sunm xing"},
      {"age": 44,"id": 12,"name": "test abc"}
      ] | orderBy:'id':true }}

    • // 根據(jù)id升序排
      {{ [{"age": 20,"id": 10,"name": "iphone"},
      {"age": 12,"id": 11,"name": "sunm xing"},
      {"age": 44,"id": 12,"name": "test abc"}
      ] | orderBy:'id' }}

數(shù)據(jù)來源:http://www.runoob.com/angularjs/angularjs-filters.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末募壕,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子语盈,更是在濱河造成了極大的恐慌舱馅,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件刀荒,死亡現(xiàn)場離奇詭異代嗤,居然都是意外死亡棘钞,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進(jìn)店門干毅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來宜猜,“玉大人,你說我怎么就攤上這事硝逢∫逃担” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵渠鸽,是天一觀的道長垫毙。 經(jīng)常有香客問我,道長拱绑,這世上最難降的妖魔是什么综芥? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮猎拨,結(jié)果婚禮上膀藐,老公的妹妹穿的比我還像新娘。我一直安慰自己红省,他們只是感情好额各,可當(dāng)我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著吧恃,像睡著了一般虾啦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上痕寓,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天傲醉,我揣著相機(jī)與錄音,去河邊找鬼呻率。 笑死硬毕,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的礼仗。 我是一名探鬼主播吐咳,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼元践!你這毒婦竟也來了韭脊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤单旁,失蹤者是張志新(化名)和其女友劉穎涤垫,沒想到半個月后神凑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體皇耗,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年撵渡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片死嗦。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡趋距,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出越除,到底是詐尸還是另有隱情节腐,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布摘盆,位于F島的核電站翼雀,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏孩擂。R本人自食惡果不足惜狼渊,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望类垦。 院中可真熱鬧狈邑,春花似錦、人聲如沸蚤认。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砰琢。三九已至蘸嘶,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間陪汽,已是汗流浹背训唱。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留掩缓,地道東北人雪情。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像你辣,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子尘执,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,494評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理舍哄,服務(wù)發(fā)現(xiàn),斷路器誊锭,智...
    卡卡羅2017閱讀 134,629評論 18 139
  • AngularJS是什么表悬?AngularJs(后面就簡稱ng了)是一個用于設(shè)計動態(tài)web應(yīng)用的結(jié)構(gòu)框架。首先丧靡,它是...
    200813閱讀 1,590評論 0 3
  • 轉(zhuǎn)載文章 angularjs 過濾器(filter)正如其名蟆沫,作用就是接收一個輸入籽暇,通過某個規(guī)則進(jìn)行處理,然后返回...
    飛將軍閱讀 599評論 0 2
  • 近來绸狐,身邊的很多好友都發(fā)來了邀請,參加他們的婚禮累盗。一個個紅色的像“炸彈”一樣的消息襲擊了我這位單身人士寒矿。在電話中...
    飛魚跳跳閱讀 482評論 3 0
  • 寫意小品畫人生 畫:傅云石 文:綠衣 一人一釣一長天, 碧水浮舟自得閑若债。 枕浪拋開心煩事符相, 清涼風(fēng)里夢猶酣。
    綠衣香閱讀 264評論 5 7