整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS3:為內容設置樣式

          CSS3:為內容設置樣式
          本樣式對齊文本text-align屬性用于指定文本塊的對齊方式,可選值包括: 1)start:內容對齊開始邊界,默認; 2)end:內容對齊結束邊界; 3)left:內容左對齊; 4)right:內容右對齊; 5)center:內容居中對齊; 6)justify:內容兩端對齊。當text-align屬性使用了justify值時,可以使用text-justify屬性指定文本添加空白的方式,這個屬性...
          了解了包的概念,就可以系統的介紹Java中的訪問控制級別。在Java中,針對類、成員方法和屬性提供了四種訪問級別,分別是private、default、protected和public。 權限訪問修飾符(權限從大到小依次往右排) public(公共) protected(受保護) default(缺省) private(私有) 同一個類 √ √...
          Rust 提供了代碼封裝的機制。可以通過crate (等同于Java中的package)創建相對獨立的module模塊,模塊中封裝了可以重復使用的功能函數。當創建了自己的 lib 庫或者要使用第三方的庫的時候(這些庫就是一些事先寫好的crate)需要將這些庫中的module 模塊引用到當前的環境中。Rust提供了以下幾種引用方式:一、使用 extern crate在使用這些Module的文件中,通過...
          填空題: 他______犧牲生命_______出賣組織? 據數據統計,不同年代的同學回復的最多的是….. 60后,他寧可犧牲生命,也不出賣組織。 70后,他害怕犧牲生命,所以出賣組織。 80后,他與其犧牲生命,不如出賣組織。 90后,他即使犧牲生命,也要出賣組織。 00后,他白白犧牲了生命,忘了出賣組織。 上邊的案例,引發了大家對”自我與企業關系的思考”. 能力與欲望...
          歷屆試題 國王的煩惱 時間限制:1.0s 內存限制:256.0MB 問題描述 C國由n個小島組成,為了方便小島之間聯絡,C國在小島間建立了m座大橋,每座大橋連接兩座小島。兩個小島間可能存在多座橋連接。然而,由于海水沖刷,有一些大橋面臨著不能使用的危險。 如果兩個小島間的所有大橋都不能使用,則這兩座小島就不能直接到達了。然而,只要這兩座...
          go test命令參數問題在使用go test對go代碼進行單元測試的時候,遇到關于命令參數的問題,google了一下,沒有找到很好的說明,其實就是一些細節而已。問題是這樣的,在進行單元測試的時候,我希望輸入一些命令行參數來控制程序的運行。 參考go官方文檔,只需要在go test后面加上-args和參數就可以了 例如 go test -args -classpath E:\testcase...
          阿里云OSS-使用經驗總結,存儲,賬號-權限,分頁,縮略圖,賬號切換最近項目中,需要使用云存儲,最后選擇了阿里云-對象存儲服務OSS。總的來說,比較簡單,但是仍然遇到了幾個問題,需要總結下。1.OSS總的使用介紹 https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/...
          WEB應用圖片的格式,以及各自的特點和優化(一) by FungLeo前言12年前我入行三天.用table布局做了一個非常粗糙的網頁.我說了一句話,”網頁就是表格加文字加圖片,圖片分兩種,插入圖片和背景圖片”.這句話在今天看來,當然是一個笑話.但是當時我說出這句話的時候,當時的那些前輩都非常認可我的總結,并且認為我很有從事網絡發展的潛力啊.哎,要不是他們的鼓勵,說不定我早轉行了……扯遠了.說回正題,...
          1. 單表數據的導出針對單表數據的導出操作,MongoDB 提供了 mongoexport 命令。mongoexport 既可以將數據導出為 CSV 格式的文件,也可以導出 JSON 格式的文件。這兩者之間的區別是:JSON 是 mongoexport 默認的導出格式,不需要指定,而要導出 CSV 格式的話需要明確指定;導出 CSV 格式必須顯式指定各屬性名,而導出 JSON 格式不需要。由此可見...
          商業智能對于中小企業來說,由于其高昂的費用和運行維護技術水平要求高,往往難以承受,商業智能SAAS系統平臺+模塊的創新模式的出現能幫助中小企業走上商業智能之路。...
          stack.sh給出了一個非常好的例子,關于學習openstack創建 1.檢查devstack文件,檢查bash4.2以上,檢查用戶,不能是root2.準備環境,導入函數3.檢查local.conf和localrc是否都存在,如果存在使用localrc4.檢查是否已經運行devstack5.代理設置和禁用無效服務6.配置sudo7.配置distro庫8.配置目標目錄,創建目標目錄9.配置主機、日...
          博客地址:http://blog.csdn.net/FoxDave本文介紹如何利用SharePoint客戶端對象模型(.NET)逐級獲取Office 365網站中List的內容,僅僅是示例,沒有講究太多東西。代碼如下:ClientContext ctx=new ClientContext(""); ctx.Credentials=new SharePointOn...
          題外話Atom,風風雨雨走過一年多了.,目前最新版本是V1.7.0 .社區還是相當活躍;體驗也改善了很多;但是性能上還是欠缺;今天我再來介紹自己常用的一款插件git-control插件介紹 官方介紹頁面 作者: jacogr Github地址 我的介紹 就是命令行的GUI版本,,有些類似sourcetree,但是不如它強大,日用滿足使用在編輯器下加載git版本的工作目錄;工具默認啟用快捷鍵...
          安裝devstack后,如果沒有設置參數,執行openstack命令是不成功的。1.登錄到horizon頁面,使用admin登入,進入project->compute-> Access&Security -> API Access,記錄下Service Endpoint。或選擇download OpenStack RC File按鈕,下載demo-openrc.sh文件2.將demo-openrc...
          對于這樣的問題,看到第一眼就是暴力破解,所以也就遞歸找到所有情況,再篩選出合格的小明被劫持到X賭城,被迫與其他3人玩牌。 一副撲克牌(去掉大小王牌,共52張),均勻發給4個人,每個人13張。 這時,小明腦子里突然冒出一個問題: 如果不考慮花色,只考慮點數,也不考慮自己得到的牌的先后順序,自己手里能拿到的初始牌型組合一共有多少種呢?思路: 首先無論怎么取,手牌為13張的時候結束.也就是遞歸結束標...
          網紅和粉絲經濟,是最近幾年流行起來的概念。 截至目前,有一些初步的認識,整理成文。 粉絲,最早是明星的跟隨者比較多。 我的理解是,對于一個人物、動物、運動等,有著共同的興趣,從而建立多個人和一個人之間的關系,比如粉絲和明星。 粉絲經濟,大獲成功的標志是,雷軍和小米科技。在創業早期,就把粉絲經濟和社交傳播結合在一起,低成本地實現了全網營銷。從此以后,各大手機廠商等很多領域的企業,都...
          關于android端apk退出方式的設計,現在大體只有下面幾種:1,有退出和取消按鈕;2,一定時間內兩次返回為退出;3,一次返回就是退出。首先可以看到這兩個用按鈕的,退出都在左側,設計者肯定沒有看過十年前雅虎研究院出的web端設計指導,下一步的操作一定是在右側,而返回上一步的操作是在左側。但是到了移動端應該考慮用戶是左手還是右手使用,也就是說,如果是左手使用,這個位置設計沒有問題,反之就不用說了。...
          寫在最前:本文主要描述在網站的不同的并發訪問量級下,Mysql架構的演變可擴展性架構的可擴展性往往和并發是息息相關,沒有并發的增長,也就沒有必要做高可擴展性的架構,這里對可擴展性進行簡單介紹一下,常用的擴展手段有以下兩種Scale-up : 縱向擴展,通過替換為更好的機器和資源來實現伸縮,提升服務能力Scale-out : 橫向擴展, 通過加節點(機器)來實現伸縮,提升服務能力對于互聯網的高并...
          angular.js中,指令是最基礎的也是最重要的工具之一。angular.js指令指的是以ng為前綴的HTML屬性。在之前的ng-app、ng-model等,都屬于指令。 angular.js中的基本指令包括如下內容: · 1.ng-app/ng-model ng-app指令用于聲明angular,js的作用范圍,ng-model用于聲明模型。這些在之前都已經進行過詳細介紹。 2.ng-...
          java編碼 當你的字節序列是某種編碼時,這個時候想把字節序列變成 字符串,也需要用這種編碼方式,否則會出現亂碼 文本文件就是字節序列 可以是任意編碼的序列,如果在中文機器上直接創建文本文件,那么該文本文件 只認識ANSI編碼 案例: public class Bianma { public static void main(Strin...
          調試JDK源碼-一步一步看HashMap怎么Hash和擴容調試JDK源碼-ConcurrentHashMap實現原理調試JDK源碼-HashSet實現原理調試JDK源碼-調試JDK源碼-Hashtable實現原理以及線程安全的原因 ConcurrentHashMap線程安全的總結是我從源碼分析出來的:ConcurrentHashMap所謂線程安全是哈希沖突的時候新增的節點是線程安全的,而 Conc...
          對于后臺系統的搜索進行UI自動化,主要是比對頁面查詢結果是否與預期一致(即數據庫查詢結果) search.py# -*- coding:utf8 -*- import HTMLTestRunner import time import unittest import public from selenium import webdriver class Search(unittest.TestCa...
          ajax 的全稱是Asynchronous(異步的意思) JavaScript and XML,是一種創建交互式網頁應用的網頁開發技術 ajax技術的流行得益于google的大力推廣,正是由于google產品對ajax技術的廣泛應用,使得ajax流行起來了。 Ajax其核心有JavaScript、XMLHTTPRequest、DOM對象組成,通過XmlHttpRequest對象來向服務器發異步請求,從服務器獲得數據,然后用JavaScript來操作DOM而更新頁面。這其中最關鍵的一步就是從服務器獲得請...
          一、SpringMVChttp://blog.csdn.net/evankaka/article/details/45501811Spring Web MVC是一種基于Java的實現了Web MVC設計模式的請求驅動類型的輕量級Web框架,即使用了MVC架構模式的思想,將web層進行職責解耦,基于請求驅動指的就是使用請求-響應模型,框架的目的就是幫助我們簡化開發,Spring Web MVC也是要簡...
          概念: 優化策略:字段選擇性 選擇性較低索引 可能帶來的性能問題索引選擇性=索引列唯一值/表記錄數;選擇性越高索引檢索價值越高,消耗系統資源越少;選擇性越低索引檢索價值越低,消耗系統資源越多;查詢條件含有多個字段時,不要在選擇性很低字段上創建索引可通過創建組合索引來增強低字段選擇性和避免選擇性很低字段創建索引帶來副作用;盡量減少possible_keys,正確索引會提高sql查詢速度,過多索引...
          一. 什么是Spark? Spark是UC Berkeley AMP lab所開源的類Hadoop MapReduce的通用的并行計算框架,Spark基于map reduce算法實現的分布式計算,擁有Hadoop MapReduce所具有的優點;但不同于MapReduce的是Job中間輸出和結果可以保存在內存中,從而不再需要讀寫HDFS,因此Spark能更好地適用于數據挖掘與機器學習等需...
          相比之前的增改查,刪除就顯得簡單的多了。 這里的request的type為delete,刪除成功的status為204,404則是要刪除的記錄不存在 var id='BAD90A95-7FEA-E511-9414-ADA183AB6249'; $.ajax({ async: false, type: "DELETE ", co...
          關于JPush極光推送是國內的服務廠商提供的一站式push服務(同時支持iOS、android),后面也加入了即時通訊的能力供app使用。致力于打造簡單、可靠、價格有競爭力的服務(簡單功能全免費,高級版才收費),讓應用開發商可以聚焦業務開發,push相關的技術實現全部通過極光推送來解決,僅需調用極光推送的api即可。正因為如此,開發者小伙伴們對其的評價相當不錯。筆者的app新增了從服務器往移動客戶端...
          Mapreduce初析 Mapreduce是一個計算框架,既然是做計算的框架,那么表現形式就是有個輸入(input),mapreduce操作這個輸入(input),通過本身定義好的計算模型,得到一個輸出(output),這個輸出就是我們所需要的結果。 重點就是這個計算模型的運行規則。在運行一個mapreduce計算任務時候,任務過程被分為兩個階段:map階段...
          Jquery對象常用的方法:$(”p”).addClass(css中定義的樣式類型); 給某個元素添加樣式 $(”img”).attr({src:”test.jpg”,alt:”test Image”}); 給某個元素添加屬性/值,參數是map $(”img”).attr(”src”,”test.jpg”); 給某個元素添加屬性/值 $(”img”).attr(”title”, function(...

          pring-Boot-Admin是什么

          先看看,官網給其定義:

          簡單來說,Spring Boot Admin是一個管理和監控Spring Boot應用程序的開源軟件。每個應用都認為是一個客戶端,通過HTTP或者服務注冊發現Spring Cloud(Eureka、Consul等等)注冊到admin server中進行展示,Spring Boot Admin UI部分使用AngularJs將數據展示在前端。

          Spring Boot Admin是一個針對spring-boot的actuator接口進行UI美化封裝的監控工具。它可以:在列表中瀏覽所有被監控spring-boot項目的基本信息,詳細的Health信息、內存信息、JVM信息、垃圾回收信息、各種配置信息(比如數據源、緩存列表和命中率)等,還可以直接修改logger的level。

          監控實例

          Spring Boot Admin包含admin-server與admin-client兩個組件,admin-server通過采集actuator端點數據,顯示在spring-boot-admin-ui上。

          **提醒:為了演示服務端和客戶端,本實例創建了一個maven多模塊項目。 **

          admin-server端

          admin-server端主要是數據展現功能,包含了一個ui頁面。

          創建一個spring-boot-admin-server工程。

          0.引入pom依賴

           <dependency>
           <groupId>de.codecentric</groupId>
           <artifactId>spring-boot-admin-starter-server</artifactId>
           </dependency>
           <dependencyManagement>
           <dependencies>
           <dependency>
           <groupId>de.codecentric</groupId>
           <artifactId>spring-boot-admin-dependencies</artifactId>
           <version>1.5.7</version>
           <type>pom</type>
           <scope>import</scope>
           </dependency>
           </dependencies>
           </dependencyManagement>
          

          注意:由于使用的SprinBoot為1.5.15版本,所以選用的Spring Boot Admin版本為1.5.7版本。同時為了版本依賴,使用dependencyManagement加入了spring-boot-admin-dependencies進行版本管理。

          1.啟動類,加入注解@EnableAdminServer。

          @SpringBootApplication
          @EnableAdminServer
          @Slf4j
          public class Chapter28AdminServerApplication {
           public static void main(String[] args) throws Exception {
           SpringApplication.run(Chapter28AdminServerApplication.class, args);
           log.info("Chapter28AdminServer啟動!");
           }
          }
          

          一個服務端就基本配置結束了,啟動應用,訪問:http://127.0.0.1:8080 ,即可看見監控頁面了:

          由于現在還沒有加入客戶端,所以應用列表都是空的。

          admin-client端

          被監控的應用只需要加入相關依賴和服務端配置即可。

          創建一個spring-boot-admin-client項目

          0.引入pom依賴

           <dependency>
           <groupId>de.codecentric</groupId>
           <artifactId>spring-boot-admin-starter-client</artifactId>
           </dependency>
          

          1.配置文件加入服務端地址等信息。

          application.properties

          # 應用名稱 便于識別
          spring.application.name=spring-boot-admin-client
          server.port=8081
          #服務端地址
          spring.boot.admin.url=http://127.0.0.1:8080
          # 關閉安全認證
          management.security.enabled=false
          # 利用info端點,加入版本等信息 
          info.version=@project.version@
          info.name=@project.artifactId@
          # 可自定義信息
          info.author=oKong
          info.blog=http://blog.lqdev.cn/
          

          注意:為了能獲取maven的配置內容,需要在pom文件中加入以下配置:

          <build>
           <plugins>
           <plugin>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-maven-plugin</artifactId>
           <executions>
           <execution>
           <goals>
           <goal>build-info</goal>
           </goals>
           </execution>
           </executions>
           </plugin>
           </plugins>
          </build>
          

          只需要這兩部,客戶端就配置完了,啟動下,訪問http://127.0.0.1:8080 ,即可看見監控頁面已經包含了此應用數據了:

          此時,我們點擊詳情,即可看見各類監控數據了。

          環境變量:

          線程信息:

          日志相關:

          若需要動態的修改日志級別,按官網的提示,需要加入logback-spring.xml文件,具體的可查看官網文檔吧,寫的很詳細了。

          其他監控指標,大家可以自行查看下。


          注意:在生產環境中,為了數據的安全,還是需要加上安全認證的,具體的可以查看官方文檔:securing-spring-boot-admin,相對比較簡單,簡單來說就是加入spring-boot-starter-security進行安全認證,這里可以直接引入spring-boot-admin-server-ui-login進行登錄安全認證。本文就不闡述了。


          監控通知

          雖然我們可以通過界面進行可視化監控,但不可能實時去盯著屏幕的,我們希望在服務有問題,比如下線、CPU異常等情況時,能通過郵件等形式及時通知對應責任人,這樣就能做到預警效果了。

          在SpingBootAdmin中,提供了多種通知機制,來實現監控告警功能。

          可以看見,其集成了國外的一些通訊軟件,而對于我們而言,還是使用郵件通知比較靠譜。當然也能自定義通知,進行個性化消息通知功能,比如釘釘機器人通知等。

          發送郵件通知

          這里簡單以郵件通知為例。具體郵件發送相關知識點,可查看:第二十六章:郵件發送,這里不在闡述了。

          以下配置都是在服務端spring-boot-admin-server進行添加。

          0.引入pom依賴

          <dependency>
           <groupId>org.springframework.boot</groupId>
           <artifactId>spring-boot-starter-mail</artifactId>
          </dependency>
          

          1.配置郵箱信息。

          # 郵件相關
          # SMTP服務器地址
          spring.mail.host=smtp.qq.com
          # SMTP服務器端口號 默認-1
          # spring.mail.port=-1
          # 發送方帳號
          spring.mail.username=郵箱
          # 發送方密碼(授權碼)
          spring.mail.password=郵箱密碼
          #javaMailProperties 配置
          # 開啟用戶身份驗證
          spring.mail.properties.mail.smtp.auth=true
          # 發送給誰
          spring.boot.admin.notify.mail.to=499452441@qq.com
          # 誰發的
          spring.boot.admin.notify.mail.from=499452441@qq.com
          

          再次啟動服務端應用和客戶端,之后停止客戶端,就可以收到下線通知郵件了。

          同時,我們還能自定義發送郵件的主題和內容,配置文件加入

          # 主題格式
          # 使用中文會亂碼,可使用yml文件格式解決
          # 之類直接unicode編碼了
          # 應用#{application.name}(#{application.id}) 狀態為:#{to.status}
          spring.boot.admin.notify.mail.subject=\u5e94\u7528#{application.name}(#{application.id}) \u72b6\u6001\u4e3a\uff1a#{to.status}
          # 郵件內容
          #應用#{application.name} (#{application.id})\n狀態從 #{from.status} 變為 #{to.status}\n\n 應用健康地址:#{application.healthUrl}
          spring.boot.admin.notify.mail.text=\u5e94\u7528#{application.name} (#{application.id})\n\u72b6\u6001\u4ece #{from.status} \u53d8\u4e3a #{to.status}\n\n \u5e94\u7528\u5065\u5eb7\u5730\u5740\uff1a#{application.healthUrl}
          

          多說幾句:這里的subject和text都支持SpEL(Spring Expression Language)表達式的,關于SpEL表達式,有興趣的同學可以自行搜索下,是一個支持運行時查詢和操作對象圖的強大的表達式語言,類似于EL表達式,定界符為#{},一種簡化開發的表達式,通過使用表達式來簡化開發,減少一些邏輯、配置的編寫。

          而此次,發送郵件的參數,通過跟蹤源碼獲悉,入口的參數為ClientApplicationEvent,對應路徑為:de.codecentric.boot.admin.event.ClientApplicationEvent,即應用信息。其繼承的類如下:

          當應用發送狀態變更時,就會觸發ClientApplicationStatusChangedEvent事件了,對應的參數如下所示:

          所以,需要額外一些參數時,可以根據de.codecentric.boot.admin.model.Application的屬性獲取更加詳細的信息,如metadata、info等等。

          之后,發送的郵件內如如下:

          自定義通知

          除了使用自帶的一些通知機制外,我們還能通過自定義,來進行個性化通知的創建,比如在一些場景下,我們會把消息推送到MQ服務器上或者手機上等等。實現通知比較簡單,就是實現Notifier接口,而官方提供給了一個抽象類AbstractStatusChangeNotifier,我們直接繼承此類就好了。

          0.創建一個自定義通知類

          CustomNotifier.java

          /**
           * 自定義通知
           * @author oKong
           *
           */
          @Component
          @ConfigurationProperties("okong.custom.notify")
          @Setter
          @Getter
          @Slf4j
          public class CustomNotifier extends AbstractStatusChangeNotifier{
           String name;
           @Override
           protected void doNotify(ClientApplicationEvent event) throws Exception {
           //這里只是為了示例 ,直接輸出到控制臺了。
           log.info("{}-自定義通知:應用-{}", name,event.getApplication().getName());
           }
          }
          

          1.配置文件配置屬性name的值

          # 自定義通知類型
          okong.custom.notify.name=oKong
          

          再次,啟動應用,當監控的應用狀態發生變動時,可以看見郵件和自定義通知都生效了,控制臺可以看見自定義輸出內容了。

          大家可以結合實際的業務需求,編寫不同的自定義通知類的,比如利用小程序或者微信公眾號,發送微信信息;或者發送短信;或者其他的通訊工具都可以的,自由發揮~

          參考資料

          1. http://codecentric.github.io/spring-boot-admin/1.5.7/

          總結

          本章節主要講解了利用Spring Boot Admin這個web監控工具進行可視化的監控應用各指標信息。關于使用Spring Cloud注冊中心來進行客戶端自動注冊與發現的,本系列就不闡述了,因為涉及到一些Eureka的相關知識點,后期會在白話SpringCloud的實施監控里面進行詳細闡述,而且基于Spring Boot2的界面風格也有大變動,使用Vue.js來進行構建了,同時很會集成Hystrix和turbine的集成監控,會更加方便。

          最后

          目前互聯網上很多大佬都有SpringBoot系列教程,如有雷同,請多多包涵了。原創不易,碼字不易,還希望大家多多支持。若文中有所錯誤之處,還望提出,謝謝。

          、前端代碼一些要注意的問題:

          • 不要輕易改動全站級CSS和通用CSS庫,改動后,要經過全面測試
          • 避免使用filter
          • 避免在CSS中使用expression
          • 避免過小的背景圖片平鋪
          • 盡量不要在CSS中使用!important
          • 絕對不要在CSS中使用"*"選擇符
          • 層級(z-index)必須清晰明確,頁面彈窗、氣泡為最高級(最高級為999),不同彈窗氣泡之間可在三位數之間調整,普通區塊為10-90內10的倍數;區塊展開、彈出為當前父層級上個位增加,禁止層級間盲目攀比
          • 背景圖片在情況允許,盡可能使用sprite技術,減小http請求,考慮到多人協作開發,sprite按照模塊、業務、頁面來劃分
          • 頁面內部盡量避免使用style屬性,CSS放在head標簽中,由link標簽引入,使頁面的結構與表現分離
          • 盡量減少使用float、position等影響性能的屬性,這樣可以避免新手在布局時出現的混亂
          • 盡量少使用<br />來斷行
          • 不要連續出現多個 (空格),也盡量少使用全角空格(英文字符集下,全角空格會變成亂碼),空白應該盡量使用text-indent、maring/padding等方法來實現
          • 排版如果遇到需要首行縮進的處理,可以使用text-indent:2em;
          • 圖片如果需要加載就在頁面上用img標簽寫出,并指明寬高,重要的圖片必須加上alt屬性,給重要的元素和截斷的元素上加上title
          • 如果有跳轉的地方,統一使用a標簽,<a href="#"></a>,需要跳轉到新頁面,則還需要加上targent="_blank"屬性,如果點擊的是空鏈接(#),則會自動將當前頁面重置到首端,可以使用"javascript:void()"來替代原來的"#"
          • 分清楚什么情況下jpg/gif/png圖片

          二、前端自學網站,提升前端技能的26個網站,人手必備:

          1. CSS battle【在線比拼 CSS】 : https://cssbattle.dev
          2. Learn CSS layout【學習 CSS 布局】:http://learnlayout.com
          3. Flexbox Froggy【學習 Flex 布局的小游戲】:http://flexboxfroggy.com
          4. EnjoyCSS【在線CSS代碼可視化工具】:https://enjoycss.com
          5. CSS-Tricks 【CSS 技巧】:https://css-tricks.com
          6. Neumorphism【實現新擬態效果】:https://neumorphism.io
          7. uiGradients【分享漸變色】:https://uigradients.com
          8. JavaScript【一個一直更新的JavaScript 的語法文檔,主要會寫如何去避免一些常見的錯誤】:https://bonsaiden.github.io/JavaScript-Garden/zh/
          9. JS Tips【JS 技巧】:https://www.jstips.co
          10. JSweekly【技術周刊 】:https://javascriptweekly.com
          11. CDNJS【JavaScript 資料庫】:https://cdnjs.com/libraries
          12. Beautiful Open 【開源 JS 庫集合】:https://beautifulopen.com
          13. JavaScript Fun【代碼庫集合】:https://www.javascript.fun
          14. Stack Overflow【編程人員問答網】:https://stackoverflow.com
          15. 掘金【高質量技術社區】:https://juejin.im
          16. Codrops【網頁設計開發博客】:https://tympanus.net
          17. CodePen【一個網站前端設計開發平臺,針對網站前端代碼的一個工具,上面有各種效果的案例特效(炫技),可以在他們的 demo 基礎上開發自己的前端設計。】
            https://codepen.io
          18. CodeSandBox【提供一個在線開發環境的“沙盒”,主流的框架如 React、Vue、Angular 等,都可即開即用、實時編譯預覽,非常方便。】
            https://codesandbox.io
          19. JS Bin【輕量級在線編輯器網站】:https://jsbin.com
          20. ICONSVG【在線自定義設計SVG圖標素材】:https://iconsvg.xyz
          21. OpenMoji【免費表情符號庫】:https://www.openmoji.org
          22. Share Icon 【免費矢量素材圖庫】:https://www.shareicon.net
          23. tableconvert 【在線表格編輯器】:https://tableconvert.com
          24. Feathericons【極簡 ICON 圖標集】:https://feathericons.com
          25. HTML5UP 【提供大量的HTML5模版】:https://html5up.net/
          26. 趣IT【一個會更新面試題和練習題的寶藏王】https://www.funit.cn/

          三、前端學習路線圖概覽:黑馬程序員web前端視頻教程從入門到精通Web前端視頻教程完整版_Web前端視頻教程從入門到精通_黑馬程序員

          HTML+CSS-->移動web->JavaScript基礎-->Web APIs->數據交互&異步編程-->Node.js-->Vue2+Vue3-->React核心技術-->微信小程序

          新手不要光看,學完基礎就可以寫靜態頁面學完特性就可以獨立搞一個商城首頁。可以獨立完成之后再去學習JavaScript。

          JavaScript個非常重要

          • JavaScript本身屬于抽象的,尤其是閉包、內置對象、DOM這里都有難度;
          • 而且要學習的內容非常多,比如函數庫,對象庫也是很多很多;
          • 不僅涉及面向過程的編程思想,還有面向對象的編程思想;
          • 好不容易都學習完了之后會有一種脫離實際應用的感覺,這些都算是javascript的難點。

          一條清晰的學習路線了很重要,基礎部分定義變量、函數、數組、字符串、內置函數、內置對象)——>面向過程的編程思想在這里可以試著用自定義按鈕、自定義播放器練習)——>面向過程編程思想封裝一些我們自己想的對象,提供有意義的接口

          最后想說的最簡單的方法就是找到官方幫助手冊,所有的方法屬性,都讀。讀到自己我安全理解了,這些文檔可以幫我們夯實基礎學習,起碼有一個幫助,就是優化了我們不規范的代碼。很多人上來就建議看文檔學習,個人感覺沒必要。學完基礎知識之后,夯實基礎看官方文檔會讓大家更受益。


          主站蜘蛛池模板: 国产精品久久无码一区二区三区网| 高清一区二区三区视频| 日韩在线视频一区| 激情内射日本一区二区三区| 国产精品揄拍一区二区| 一区二区三区国产| 日本人真淫视频一区二区三区| 精品国产乱子伦一区二区三区| 成人午夜视频精品一区| 免费人妻精品一区二区三区| 中文无码一区二区不卡αv| 久久亚洲一区二区| 精品无码人妻一区二区三区不卡 | 中文字幕av日韩精品一区二区| 亚洲一区二区三区AV无码| 国产精品亚洲不卡一区二区三区 | 风间由美性色一区二区三区 | 精品国产精品久久一区免费式| 亚洲午夜一区二区电影院| 日本一区二区三区在线观看| 国产高清在线精品一区二区| 国产在线第一区二区三区| 欧美日韩一区二区成人午夜电影| 99久久无码一区人妻a黑| 麻豆一区二区99久久久久| 无码精品人妻一区二区三区人妻斩 | 亚洲AV香蕉一区区二区三区| 国产福利91精品一区二区三区 | 日韩一区二区三区在线精品 | 在线日产精品一区| 97久久精品无码一区二区| 亚洲国产欧美日韩精品一区二区三区| 无码一区二区三区视频| 亚洲视频一区二区三区| 国产香蕉一区二区在线网站| 国产一区二区三区播放心情潘金莲 | 一区二区三区中文字幕| 国产在线精品一区二区三区直播 | 国产福利在线观看一区二区| 精品视频午夜一区二区| 精品国产日韩亚洲一区|