1. 程式人生 > >bug最後彙總-2018/08/03

bug最後彙總-2018/08/03

一、對於點選後請求時間過長的按鈕

現象:容易給使用者點選無效的錯覺,從而導致多次點選,從而發出多個相同請求,這顯然是不符合我們意願的

解決:

使用者點擊發出多個請求:加個鎖,當用戶點選後,將鎖關閉,使使用者之後的點選無效,當請求完畢後再開啟鎖

等待時間過長使用者體驗降低:可以加個loading,點選後按鈕內容後加個"...",或者後加個loading圖示,當請求完畢再回復原樣

二、傳送資料內容能在前端驗證的儘量在前端驗證

原因:如果把一些驗證放到後端介面,我們傳送請求,然後驗證沒通過,請求返回原因,然後呢?肯定是使用者修改後,再次傳送請求了。

但是如果我們把這些驗證放到前端,這個請求就沒必要發出,之後驗證通過後才會發出請求,這樣可以一定程度減少請求數量,減輕伺服器負擔。

三、Vue.js開發中關於第三方元件的使用

使用第三方元件的好處:節省了很多重複程式碼,直接引入使用即可

使用第三方元件的缺點:雖然元件好用,但是我們也要根據需求具體分析,因為元件的樣式和功能是定死的,要考慮使用這個的元件和當前需求衝突的多少,如果衝突很多,或者自己寫個適配的元件會更加高效方便。

四、開發前一定要把需求弄清楚才開始開發,如果是因為需求弄錯而導致的時間和人力的浪費,痛苦的只會是你自己,要對自己負責。

五、Vue.js開發,如果如果通過等號,為data中的一個數組或者一個物件內,新增一個新物件,這個新新增的新物件不是響應式,我們修改該物件的值,並不會觸發重新渲染。

解決:通過 this.$set(obj, prop, value) 來新增,通過此方法新增的是響應式的,因為會被重新定義新增setter和getter

六、如果介面傳遞的資料除了正常的資料外,還存在檔案,我們需要 new FormData() ,通過FormData例項的append方法新增資料,然後將改FormData例項作為引數傳遞

七、檔案位元組轉換為正常單位

// 位元組轉換為最合適的單位,最後是四捨五入取整,如果其他需求可以修改
function bytesToSize(bytes) {
    if (bytes === 0) return '0 B';
    
var k = 1024, // or 1000 sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'], i = Math.floor(Math.log(bytes) / Math.log(k)); return (bytes / Math.pow(k, i)).toFixed(0) + '' + sizes[i]; }

八、Vue.js使用ElementUI元件,自定義樣式問題

問題:自定義樣式其實就是覆蓋元件的預設樣式,這些內容需要放到全域性,即不能放到設定scope的style標籤中,否則不會生效

原因:因為Vue.js被放到scope中的樣式選擇器在打包後都會被加上一個唯一的屬性標識,通過這個唯一的屬性標識來限定元件作用域,避免影響其他元件的樣式。

九、編輯器內容初始化問題

需求:如果元件或者頁面存在編輯器,當頁面初次載入時,我們需要將獲取到的資料初始化到編輯器中

問題:編輯器初始化一般要操作dom,如果在為編輯器初始化填充資料的時候,編輯器例項(也就是編輯器DOM)還沒有渲染完畢,會導致編輯器的內容初始化失敗

解決:

方一:有些編輯器會提供編輯器例項載入完畢的事件,我們在該事件的回撥中填充初始化資料,如下例子

editor.on('ready', () => {
   editor.setData("初始化資料"); 
});

方法二:如果沒有提供方一的事件api,可能會存在一個編輯器當前狀態的屬性,比如說是status,載入時status為loading,載入完畢,status變為ready

然後我們可以設定定時器,每過100ms就監測一次status,如果status變為ready,關閉監測定時器,填充初始化資料

let timer = setInterval( () => {
    clearInterval(timer);
   if (editor.status == 'ready') {
        editor.setData('初始化資料');
   }
});

十、Vue.js開發中使用了ElementUI中的table元件

問題:會出現橫向滾動條,雖然表格中內容沒有超過設定的寬度

原因:table的border存在會導致內容border超過設定的width,從而莫名出現橫向滾動條,但因為樣式,表格的border又不能去掉

解決:在全域性樣式中加入如下程式碼:

.form-content .el-table__body-wrapper,
.form-content .el-table__footer-wrapper,
.form-content .el-table__header-wrapper {
  width: 101%;
}

------------ end

相關推薦

bug最後彙總-2018/08/03

一、對於點選後請求時間過長的按鈕 現象:容易給使用者點選無效的錯覺,從而導致多次點選,從而發出多個相同請求,這顯然是不符合我們意願的 解決: 使用者點擊發出多個請求:加個鎖,當用戶點選後,將鎖關閉,使使用者之後的點選無效,當請求完畢後再開啟鎖 等待時間過長使用者體驗降低:可以加個loading,點選後

2018-08-03 期 MapReduce倒排索引編程案例1(Combiner方式)

pre true 輸出 hello pub 類型 rom 偏移 apr package cn.sjq.bigdata.inverted.index;import java.io.IOException;import org.apache.hadoop.conf.Config

RISC-V雙週簡報0x1d:印度首個可執行Linux的RISC-V晶片成功流片(2018-08-03)

RISC-V 雙週簡報 (2018-08-03) 要點新聞: RISC-V Tokyo Day 2018徵集演講即將截止! 印度Shakti處理器流片成功併成功Boot起Linux 觀點分享 Is open source silicon the nex

2018/08/03 xml框架主要用來儲存資訊,不需要在網頁顯示資訊

XML用來儲存資訊,不需要顯示出來 XML(可擴充套件標記語言)(不需要編譯的語言) XML 好處:其實hml=xml+http4(跨平臺開發,既能寫移動端,也能寫pc) 1.支援跨平臺,各系統; 2.可以自由編寫標籤,可擴充套件性比較好 3.用於儲存資料html5(顯示資料)

【iOS - 周總結】開發中遇到的小知識點(2018.12.03-2018.12.08

補充:本文也是拖遲一週才更新的。也是由於專案原因。 時間:2018.12.03-2018.12.08 1.在主執行緒操作UI 在開發中我們一般只在主執行緒操作UI,但是在一些方法中我們會呼叫一下UI處理。這時候就會報出一些錯誤警告等。 1. UI API called from backgro

Day 48(08/03)float屬性 position(定位)

absolut 變化 pos tle 滾動條 tool toolbar 例如 另一個 float屬性 基本浮動規則 先來了解一下block元素和inline元素在文檔流中的排列方式。   block元素通常被現實為獨立的一塊,獨占一行,多個block元素會各自新起一行,默認

17.08.03

oem process sql aggregate 重做 con 後臺進程 fault 管理 oracle管理 體系結構 SGA: 大的緩沖區 $ sqlplus / as sysdba SQL> show sga 顯示sga的設置

【20180312】201803月12日(隨想)

post 而是 有一個 然而 clas OS you pos 一個 今天有一個熱點事件,在幾個群裏都有提及。 我以為是假的。沒想到是真的。果然還是太young了。 總結: 有的事,你認為是假的,它是真的。比如今天的焦點事件。 有的事,你認為一定是假的,偏偏是真

2018-06-03 對待知識的態度 --王小波

應該 正文 城市 文化 命令 什麽 軍官 高中生 別人 最近加班很多,睡前和上廁所重讀《沈默的大多數》,挑著自己喜歡的主題來看,裏面有好多我非常喜歡,沈默的大多數,思維的樂趣,老人與海等等,讀了一遍又一遍,這兩天看到對待知識的態度,覺得非常好,我得記錄下來給自己警示。因為覺

2018-07-03-Python全棧開發day24-面向對象設計

pre 使用 設計 turn 修改 self ans shandong 過程 面向對象:   根據現實中存在的東西,模擬出其特征,用來描述特定對象。 1.用函數來完成面向對象    1 def school(name,addr):#學校具有名稱和地址 2 de

第二份工作結束感悟-2018.08.02

5.1 博客園 社會 博客 怎麽 們的 信息 意義 隨筆 第二份工作結束感悟 我一直都有記錄一些事情的習慣,比如一些重大的事情或一些比較小的事情。怎麽說呢,事情無論大小記錄是我的一個習慣吧 ! 以前是在QQ空間,再就是微博,現在把所有的工作和隨筆感慨都遷移到博

2018-08-04 期 MapReduce倒排索引編程案例2(jobControll方式)

基本 正常 org gets [] pro stat context 控制器 1、第一階段MapReduce任務程序package cn.itcast.bigdata.index;import java.io.IOException;import org.apache.ha

2018-08-05 期 MapReduce實現每個單詞在每個文件中坐標信息統計

line 字符 count throws ase protect clas 行處理 tostring package cn.sjq.bigdata.inverted.index;import java.io.IOException;import java.util.Iter

2018-08-06 期 MapReduce MRUnit安裝及單元測試

程序 數據 moc rgb 輸出 bte -- 輸入 信息 一、MRUnit測試jar包mrunit-1.1.0-hadoop2.jar第三方依賴MRUnit\apache-mrunit-1.1.0-hadoop1-bin\lib二、在現有工程裏面配置MRUnit單元測試1

2018-08-07 期 MapReduce模擬實現熱銷商品排行

utf java 數據傳遞 進行 sta tex except 調用 class package cn.sjq.mr.sort;import java.io.IOException;import java.util.Comparator;import java.util.T

js 格式為2018-08-25 11:46:29 的日期比較方法

日期 start bsp temp 格式 cti com var span //判斷日期,時間大小 function compareTime(startDate, endDate) { if (startDate.length > 0 &&a

2018-08-08 期 MapReduce實現單個商品支付金額最大的前N個用戶排行(TopN)

utf see bbc lang oop 通過 .lib pro 格式 package cn.sjq.mr.sort;import java.io.FileOutputStream;import java.io.IOException;import java.util.Co

2018-08-10期 MapReduce實現雙色球近10年每個號碼中獎次數統計

[] set package orm sha ngs lds pub tca package cn.itcast.bigdata.shsq;import java.io.IOException;import org.apache.commons.lang.StringUti

2018 08/06-08/12周總結

oracl san 直接 select post javascrip 但是 -c 導致 1、Oracle在已經存在主鍵的表中插入復合主鍵的SQL語句 如已有一個表test_key,其中a1列為主鍵。 CREATE TABLE TEST_KEY( A1 VARCHAR

2018-08-12期 Hbase本地模式安裝部署

native common rwx 需要 XML www star lib 模式搭建 說明:Hbase部署模式有以下三種(1)本地模式:本地模式不依賴於HDFS存儲,將文件存儲到操作系統本地目錄,好處是我們不需要搭建HDFS集群,即可學些HBase相關命令及客戶端操作。(2