編程必備基礎之操作系統_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

操作系統概述

  操作系統是管理計算機硬件和軟件資源的計算機程序,管理配置內存、決定資源供需順序、控制輸入輸出設備等。操作系統提供讓用戶和系統交互的操作界面。操作系統的種類是多種多樣的,不局限於計算機,從手機到超級計算機,操作系統可簡單也可複雜,在不同的設備上,操作系統可向用戶呈現多種操作。因為我們不可能直接操作計算機硬件,而且設備種類繁多,需要一個統一的界面,因此有了操作系統,操作系統的簡易性使得更多人能使用計算機。常見的操作系統有:Windows、Linux、MacOS、Android等,總結一句話就是:操作系統是管理硬件、提供用戶交互的軟件系統。

  • 操作系統的基本功能
    • 操作系統統一管理着計算機資源。這些計算機資源包括處理器資源、存儲器資源、IO設備資源和文件資源等。
    • 操作系統實現了對計算機資源的抽象。即用戶無需面向硬件接口編程;IO設備管理軟件,提供獨寫接口;文件管理軟件,提供操作文件的接口。
    • 操作系統提供了用戶和計算機之間的接口。例如圖像窗口形式、命令行形式和系統調用形式等。
  • 操作系統的相關概念
    • 併發性:說到併發就不得不提一下并行性,并行性是指兩個或多個事件可以在同一時刻發生,而併發性是指兩個或多個事件可以在同一個時間間隔發生。
    • 共享性:多個程序可以同時使用主存資源,資源共享根據屬性分為互斥共享和同時訪問兩種形式
      • 互斥共享形式:當資源被程序A佔用時,其他想使用的話就只能等待,只有進程A使用完以後,其他進程才可以使用該資源。
      • 同時訪問形式:某種資源在一段時間內併發地被多個程序訪問,這種“同時”是宏觀的,從宏觀去看該資源可以被同時訪問
    • 虛擬性:虛擬性表現為把一個物理實體轉為若干個邏輯實體,物理實體是真實存在的,邏輯實體是虛擬的,虛擬的技術主要有時分復用技術和空分復用技術。
      • 時分復用技術:資源在時間上進行復用,不同程序進行併發使用,多道程序分時使用計算機的硬件資源,提高資源的利用率
        • 虛擬處理器技術:藉助多道程序設計技術,為每個程序建立進程,多個程序分時復用處理器
        • 虛擬設備技術:物理設備虛擬為多個邏輯設備,每個程序佔用一個邏輯設備,多個程序通過邏輯設備併發訪問
      • 空分復用技術:空分復用技術用來實現虛擬磁盤、虛擬內存等,提高資源利用率,提高編程效率
        • 虛擬磁盤技術:物理磁盤虛擬為邏輯磁盤,例如C、D、E等邏輯盤,使用起來更加安全方便
        • 虛擬內存技術:在邏輯上擴大程序的存儲容量,使用比實際內存更大的容量,大大提升編程效率
    • 異步性:在多道程序環境下,允許多個進程併發執行,進程在使用資源時可能需要等待和放棄,進程的執行並不是一氣呵成的,而是以走走停停的形式推進

進程管理

  為什麼需要進程呢?在沒有配置OS(操作系統)之前,資源屬於當前運行的程序,配置OS之後,引入多道程序設計的概念,可以合理的隔離資源、運行環境、提升資源利用率。進程是系統進行資源分配和調度的基本單位,進程作為程序獨立運行的的載體保障程序正常運行,進程的存在使得操作系統資源的利用率大幅提升。

進程管理之進程實體

主存中得進程形態

  • 標識符:標識符唯一標記一個進程,用戶區別其他進程,如進程id
  • 狀態:標記進程的進程狀態,如:運行態
  • 程序計數器:指向進程即將被執行的下一條指令的地址
  • 內存指針:程序代碼,進程數據相關指針
  • 上下文數據(重要):進程執行時處理存儲器的數據
  • IO狀態信息:被進程IO操作時所佔用的文件列表
  • 記賬信息:使用處理器時間、時鐘數總和等。

  由此可知,主存中的進程形態主要包括進程標識符,處理機狀態,進程調度信息,進程控制信息等。其中進程控制塊(PCB)是用於描述和控制進程運行的通用數據結構,記錄進程當前狀態和控制進程進行運行的全部信息,PCB使得進程成為能夠獨立運行的基本單位。PCB是操作系統進行調度經常會被讀取的信息,而且是常駐內存的,存放在系統專門開闢的PCB區域內。

進程與線程

  之前說過進程是操作系統進行資源分配和調度的基本單位,而線程是操作系統進行運行調度的最小單位,線程包含在進程之中,是進程中實際運行的工作單位,一個進程可以併發多個線程,每個線程執行不同任務。

   進程 線程
資源 資源分配的基本單位 不擁有資源
調度 獨立調度的基本單位 獨立調度最小單位
系統開銷 進程系統開銷大 線程系統開銷小
通信 進程IPC 讀寫同一進程數據通信

  一個進程可以有多個線程,一個進程中的線程共享資源,計算機對進程的調度,實際上是對進程中的線程進行調度

五狀態模型

  • 創建狀態:創建進程時擁有PCB但其它資源尚未就緒的狀態稱為創建狀態,操作系統提供fork函數接口創建進程。
  • 就緒狀態:當進程被分配到除CPU以外的所有必要資源后,只要再獲得CPU的使用權,就可以立即運行。其他資源都轉準備好、只差CPU資源的成為就緒狀態。
    • 在一個系統中處於就緒狀態的進程通常排成一個隊列,稱為就緒隊列。
  • 執行狀態:進程獲得CPU,其程序正在執行稱為執行狀態,再單處理機中,在某個時刻只能有一個進程是處於執行狀態。
  • 阻塞狀態:進程因某種原因如:其他設備未就緒而無法繼續執行,從而放棄CPU的狀態稱為阻塞狀態。
  • 終止狀態:程序執行完成。

進程同步

  為什麼需要進程間的同步呢?先讓我們來看一個經典的問題:生產者-消費者問題
生產者-消費者問題:有一群生產者進程在生產產品,並將這些產品提供給消費者進程進行消費,生產者進程和消費者進程可以併發執行,在兩者之間設置了一個具有n可緩衝區的緩衝池,生產者進程需要將所生產的產品放到一個緩衝區中,消費者進程可以從緩衝區取走產品消費

由上圖我們可以看出,單從生產者程序或消費者程序去看是沒問題的,但兩者併發執行時就可能會出現差錯。如下圖:

這裏的緩衝區就相當於臨界資源。
  再來看一個哲學家進餐問題:
有五個哲學家,他們的生活方式時是交替的進行思考和進餐,哲學家們共同使用一張圓桌子,分別坐在周圍的五張椅子上,在圓桌上有五個碗和五支筷子。平時哲學家們只進行思考,飢餓時則試圖取靠近他們的左、右兩隻筷子,只有兩支筷子都被他拿到的時候才能進餐,進餐完畢后,放下左右筷子繼續思考。

  出現上圖中的問題是什麼呢?其根源問題是:彼此之間沒有相互通信,如果“生產者通知消費者我已經完成了一件生產”,“哲學家向旁邊哲學家說我要進餐了”,就不會出現上圖中的問題了,也就是需要進程間的同步。

  什麼是進程同步呢?當對競爭資源在多個進程間進行使用次序的協調,使得併發執行的多個進程之間可以有效使用資源和相互合作。這裏的競爭資源也就是上圖中的臨界資源,什麼是臨界資源?臨界資源指的是一些雖作為共享資源,卻又無法同時被多個線程共同訪問的共享資源。當有進程在使用臨界資源時,其他進程必須依據操作系統的同步機制,等待佔用進程釋放該共享資源,才可以重新競爭使用共享資源。
進程同步的原則:

  • 空閑讓進:資源五佔用,允許使用
  • 忙則等待:資源有佔用,請求進程等待
  • 有限等待:保證有限等待時間能夠使用資源
  • 讓權等待:等待時,進程需要讓出CPU

  進程間同步的常用方法:如消息隊列,共享存儲,信號量。當多個線程併發使用進程資源時,進程內的多線程也需要,因為進程中的資源時進程中線程的共享資源。線程同步的方法有:互斥量、讀寫鎖、自旋鎖、條件變量等,這些方法是如何保證線程同步的呢?

  • 互斥量:由於多個線程的指令交叉執行,而互斥量可以保證先後執行,即保證原子性。什麼是原子性呢?原子性是指一系列操作不可被中斷的特性, 這一系列操作要麼全部執行完成,要麼全部沒有執行,不存在部分執行部分未執行的情況
    • 互斥量是最簡單的線程同步方法
    • 互斥量(互斥鎖),處於兩態之一的變量:解鎖和加鎖
    • 兩個狀態可以保證資源的串行
  • 自旋鎖:自旋鎖也是一種多線程同步的變量,使用自旋鎖的線程會反覆檢查鎖變量是否可用,自旋鎖不會讓出CPU,是一種忙等待狀態,即死循環等待鎖被釋放。
    • 自旋鎖避免了進程或線程上下文切換的開銷
    • 操作系統內部很多地方都是使用的自旋鎖
    • 自旋鎖不適合在單核CPU中使用
  • 讀寫鎖:這種鎖適用於臨界資源多讀少寫,讀取的時候並不會改變臨界資源的值。
    • 讀寫鎖是一種特殊的自旋鎖
    • 允許多個讀者同時訪問資源以提高讀的性能
    • 對寫的操作則是互斥的
  • 條件變量
    • 條件變量是一種相對複雜的同步方法
    • 條件變量允許線程睡眠,直到滿足某種條件
    • 當滿足條件時,可以向該線程發送信號,通知喚醒
同步方法 描述
互斥鎖 最簡單的一種線程同步方法,會阻塞線程
自旋鎖 避免切換的一種線程同步方法,屬於“忙等待”
讀寫鎖 為“讀多寫少”的資源設計的線程同步方法,可以顯著提高性能
條件變量 相對複雜的一種線程同步方法,有更靈活的使用場景

進程同步之共享內存
  在某種程度上,多進程是是共同使用物理內存的,由於操作系統的進程管理,進程間的內存空間是獨立的,進程默認是不能訪問進程空間之外的內存空間的

共享內存就可以打破這個限制,因為有這個共享內存,不同進程就可以通過頁表映射到同一個共享內存去,這個共享內存既可以被進程1使用,也可以被進程2使用。

  共享存儲允許不相關的進程訪問同一片物理內存,共享內存是兩個進程之間共享和傳遞數據的最快方式,共享內存未提供同步機制,需要藉助其他機制訪問。通過共享內存同步的過程就是:申請共享內存->連接到進程空間->使用共享內存->脫離進程空間並且刪除。共享內存是高性能後台開發中最常用的同步方式。
進程同步之Unix域套接字
  域套接字是一種高級的進程間通信的方法,Unix域套接字可以用於同一台機器進程間通信。其運行過程是創建套接字->綁定(bind)套接字->監聽(listen)套接字->接收&處理信息。域套接字提供了簡單可靠的進程通信同步服務,只能在單機使用,不能跨機器使用。

Linux的進程管理

Linux進程的相關概念:

進程類型:

  1. 前台進程:前台進程就是具有終端,可以和用戶交互的進程
  2. 後台進程:
    • 與前台進程相對,沒有佔用終端的就是後台進程
    • 後台進程基本上b不和用戶交互,優先級比前台進程低
    • 將需要執行的命令以“&”符號結束
  3. 守護進程(daemon):特殊的後台進程
    • 很多守護進程在系統引導的時候啟動,一直運行到系統關閉
    • Linux系統有很多典型的守護進程。例如:crond,sshd,httpd,mysqld等,進程名字以“d”結尾的一般都是守護進程。
      進程標記:
  • 進程ID
    • 進程ID是進程的唯一標記,每個進程擁有不同的ID
    • 進程ID表現為一個非負整數,最大值由操作系統限定
    • 操作系統提供fork()函數接口創建進程。例如進程A調用fork接口創建了進程B,進程B調用fork接口創建了進程C,那此時進程A和進程B就存在父子進程關係,進程A是父進程,進程B是子進程。進程的父子關係可以通過pstree命令查看。

ID為0的進程是idle進程,是系統創建的第一個進程,ID為1的進程init進程,是0號進程的子進程,完成系統初始化,Init進程是所有用戶進程的祖先進程。

  • 進程的狀態標記

Linux中進程的狀態如下:

狀態符號 狀態說明
R (TASK_RUNNING),進程正處於運行狀態
S (TASK_INTERRUPTIBLE),進程正處於睡眠狀態
D (TASK_UNINTERRUPTIBLE),進程正處於IO等待的睡眠狀態
T (TASK_STOPPED),進程正處於暫停狀態
Z (TASK_DEAD or EXIT_ZOMBIE),進程正處於退出狀態,或殭屍進程

操作Linux進程的相關命令

  • ps命令:ps命令常用於显示當前進程的狀態,ps命令常配合aux參數或ef參數和grep命令檢索特定進程
  • top命令
  • kill命令:kill命令發送指定信號給進程,kill-l可以查看操作系統所支持的系統

作業管理

作業管理之進程調度

  進程調度是指計算機通過決策,決定哪個就緒進程可以獲得CPU使用權。通俗來說就是保留舊進程的運行信息,請出舊進程(收拾包袱),選擇新進程,準備運行環境並分配CPU(新駐進)。那麼是如何進行進程的調度的呢?

  • 就緒隊列的排隊機制:將就緒進程按照一定的方式排成隊列,以便調度程序可以最快找到就緒進程。
  • 選擇運行進程的委派機制:調度程序以一定的策略選擇就緒進程,將CPU資源分配給它
  • 新老進程的上下文切換機制:保存當前進程的上下文信息,裝入被委派執行進程的運行上下文

  進程的調度方式分為搶佔式調度和非搶佔式調度。非搶佔式調度是指處理器一旦分配給某個進程,就讓該進程一直使用下去,調度程序不以任何原因搶佔正在被使用的處理器,直到進程完成工作,或因為IO阻塞才會讓出處理器;搶佔式調度是指允許調度程序以一定的策略,暫停當前運行的進程,保存好進程的上下文信息,分配處理器給新進程。

   搶佔式調度 非搶佔式調度
系統開銷 頻繁切換,開銷大 切換次數少,開銷小
公平性 相對公平 不公平
應用 通用系統 專用系統

進程調度算法

  • 先來先服務調度算法
  • 短進程優先調度算法:調度程序優先選擇就緒隊列中估計運行時間最短的進程;短進程優先調度算法不利於長作業進程的運行
  • 高優先權優先調度算法:進程附帶優先權,調度程序優先選擇權最高的進程,高優先權優先調度算法使得 緊迫的任務可以處理
  • 時間片輪轉調度算法:按先來先服務的原則排列就緒進程,每次從隊列頭部取出待執行進程,分配一個時間片執行;是相對公平的調度算法,但不能保證及時響應用戶

作業管理之死鎖

  死鎖是指兩個或兩個以上的進程在執行過程中,由於競爭資源或者由於彼此通信而造成的一種阻塞現象,若無外力作用,他們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的進程稱為死鎖進程。
死鎖的產生

  • 競爭資源:共享資源數量不滿足各個進程需求,各個進程 之間發生資源競爭導致死鎖,
  • 進程調度順序不當
    死鎖的四個必要條件:
  • 互斥條件:進程對資源的使用是排他性的使用,某資源只能由一個進程使用,其他進程需要使用只能等待
  • 請求保持條件:進程至少保持一個資源,又提出新的資源請求,新資源被佔用,請求被阻塞,被阻塞的進程不釋放自己保持的資源
  • 不可剝奪條件:進程獲得的資源在未完成使用前不能被剝奪,獲得的資源只能由進程自生釋放
  • 環路等待條件:發生死鎖時,必然存在進程-資源環形鏈
    死鎖的處理
  • 預防死鎖的方法
    • 摒棄請求保持條件:系統規定進程運行之前,一次性申請所有需要的資源,進程在運行期間不會提出資源的請求,從而摒棄請求保持條件
    • 摒棄步課剝奪條件:當進程請求一個新的資源得不到滿足時,必須釋放佔有的資源,當進程運行時佔有的資源可以被釋放,意味着可以被剝奪
    • 摒棄環路等待條件:可用資源線性排序,申請必須按照需要遞增申請,線性申請不在形成環路,從而摒棄了環路等待條件
  • 銀行家算法:銀行家算法是一個可操作得著名得避免死鎖得方法,以銀行借貸系統分配策略為基礎的算法。
    • 客戶申請的貸款是有限的,每次申請須聲明最大資金量
    • 銀行家在能夠滿足貸款時,都應該給用戶貸款
    • 客戶在使用貸款后,能夠及時歸還貸款。

根據還需要分配的資源表,對比可分配資源表,先給能夠滿足貸款的用戶,給用戶貸款,即圖中的P2,P2使用完資源后,需要及時歸還資源

存儲管理

  早期計算機編程並不需要過多的存儲管理,隨着計算機和程序越來越複雜,存儲管理成為必要。

  • 確保計算機有足夠的內存處理處理數據
  • 確保程序可以從可用內存中,獲取一部分內存使用
  • 確保程序可以歸還使用后的內存,已供其他程序使用

存儲管理之內存分配與回收

內存分配的過程

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

  • 單一連續分配:單一連續分配是最簡單的內存分配方式,只能在單一用戶、單進程的操作系統中使用
  • 固定分區分配:固定分區分配是支持多道程序的最簡單的存儲分配方式,內存空間被劃分成若干個固定大小的區域,每個分區只提供給一個用戶使用,互不干擾
  • 動態分區分配:根據進程實際需要,動態分配內存空間,相關數據結構、分配算法如下:
    • 動態分區空閑表數據結構:對空閑區進行標記,0表示空閑區,1表示已被使用
    • 動態分區空間鏈數據結構
    • 首次適應算法(FF算法):分配內存時從開始,順序查找適合內存區,若沒有合適的空閑區,則該次分配失敗;每次從頭部開始,使得頭部地址不斷被劃分
    • 最佳適應算法(BF算法):最佳適應算法要求空閑鏈表按照容量大小排序,遍歷空閑鏈表找到最佳合適的空閑區
    • 快速適應算法(QF算法):快速適應算法要求有多個空閑區鏈表,每個空閑區鏈表存儲一種容量的空閑區

內存回收的過程

  情況一:不需要新建空閑鏈表節點,只需要把空閑區1的容量增大為空閑區即可;情況二:將回收區與空閑區合併,新的空閑區使用回收區的地址;情況三:將空閑區1、空閑區2和回收區合併,新的空閑區使用空閑區1的地址;情況四:為回收區創建新的空閑節點,插入到相應的空閑區鏈表中去。

存儲管理之段頁式存儲管理

  由於每個進程都有自己獨立的進程空間,那操作系統是如何管理進程的空間呢?

  • 頁式存儲管理:
    • 將進程邏輯空間等分為若干大小的頁面
    • 相應的把物理內存空間分成與頁面大小的物理塊
    • 以頁面為單位把進程空間裝進物理內存中分散的物理塊

      頁表:頁表記錄了進程邏輯空間與物理空間的映射

現代計算機系統中,可以支持非常大的邏輯地址空間(\(2^{32}\)~\(2^{64}\)),這樣,頁表就變得非常大,要佔用非常大的內存空間,如具有32位邏輯地址空間的分頁系統,規定頁面大小為4KB,則在每個進程頁表中的頁表項可達1M(32位系統進程的尋址空間為4G,4G/4KB=1M)個,如果每個頁表項佔用1Byte,故每個進程僅僅頁表就要佔用1M的內存空間。

  • 段式存儲管理
    • 將進程邏輯空間劃分成若干段(非等分)
    • 段的長度由連續邏輯的長度決定
    • 主函數MAIN,子程序段X,系函數Y等

  段式存儲和頁式存儲都離散地管理了進程的邏輯空間。頁是物理單位,段是邏輯單位,分頁是為了合理利用空間,分段是為了滿足客戶需求;頁大小由硬件空間,段長度可動態變化;頁表信息是一維的,段表信息是二維的。

  • 段頁式存儲管理:由於分頁可以有效提高內存利用率(雖然說存在內存碎片),分段可以滿足用戶需求,我們可以將兩者結合,形成段頁式存儲管理。
    • 先將邏輯空間按段式管理分成若干段
    • 再把段內空間按頁式管理等分成若干頁

存儲管理之虛擬內存

  思考:一個遊戲十幾個G,物理內存只有4G,那這個遊戲是如何運行起來的呢?

  有些進程實際需要的內存很大,超過物理內存的容量,多道程序設計,使得每個進程可用物理內存更加稀缺,不可能無限增加物理內存,物理內存總有不夠的時候,這個時候就需要虛擬內存了。虛擬內存是操作系統內存管理的關鍵技術,使得多道程序運行和大程序運行成為現實,把程序使用內存劃分,將部分暫時不使用的內存放置在輔存。

程序的局部性原理:局部原理是指CPU訪問存儲器時,無論是存取指令還是存取數據,所訪問的存儲單元都趨於集中在一個較小的連續區域中。

  • 程序運行時,無需全部裝入內存,裝載部分即可
  • 如果訪問頁不在內存,則發出缺頁中斷,發起頁面置換
  • 從用戶層面看,程序擁有很大的空間,即是虛擬內存
  • 虛擬內存實際是對物理內存的補充,速度接近於內存,成本接近於輔存

虛擬內存的置換算法:和我在《計算機組成原理》這篇博客中的高速緩存的置換策略差不多,這裏就不詳細介紹了。

  • 先進先出算法(FIFO)
  • 最不經常使用算法(LFU)
  • 最近最少使用算法(LRU)

高速緩存的替換策略發生在Cache-主存層次,只要是為了解決速度問題;虛擬內存的替換策略發生在主存-輔存層次,主要是為了解決容量問題。

Linux的存儲管理

Buddy內存管理算法

  • Buddy算法是經典的內存管理算法
  • 算法基於計算機處理二進制的優勢具有極高的效率
  • 算法主要是為了解決內存外碎片的問題

頁內碎片:內部碎片是已經被分配出去(能明確指出屬於哪個進程)的內存空間大於請求所需的內存空間,不能被利用的內存空間就是內部碎片。
頁外碎片:外部碎片是指還沒有被分配出去(不屬於任何進程),但是由於大小而無法被分配給申請內存空間的新進程的內存空閑塊。
Buddy是夥伴的意思,這裏的”夥伴“指的是內存的”夥伴“,一片連續內存的”夥伴“是相鄰的另一片大小一樣的連續內存
Buddy內存管理算法執行過程:創建一系列空閑塊鏈表,每一種都是2的冪 –> 現在需要分配100kb內存 –> 回收剛才分配的內存

Linux的交換空間

  交換空間(Swap)是磁盤的一個分區,Linux物理內存滿時,會把一些內存交換至Swap空間,Swap空間是初始化系統時配置的。

冷啟動內存依賴:對於一些大型的應用程序,在啟動的過程中需要使用大量的內存,但是這些內存很大一部分只是在啟動的時候使用一下,在運行的時候很少使用到這部分內存,因此有了這個交換空間,系統就可以將這個部分不怎麼使用的內存數據保存在SWAP空間中,從而釋放跟多的物理內存,提供給這個系統使用。

系統睡眠依賴: 當Linux系統需要睡眠的時候,它就會把系統中的所有數據都保存在swap空間內,等下次這個系統需要啟動的時候,才把這些數據重新加載到內存中裏面,這樣就可以加快系統的啟動速度。

大進程空間依賴:有些進程確實需要使用大量的內存空間,但是物理內存不夠使用,因此需要把這些進程需要使用的內存暫時保存到交換空間中,使得這個大的進程也可以運行起來

Swap空間和虛擬內存的對比:

Swap空間 虛擬內存
存儲位置 Swap空間存在於磁盤 虛擬內存存在於磁盤
置換層次 Swap空間與主存發生置換 虛擬內存與主存發生置換
所屬概念 Swap空間是操作系統概念 虛擬內存是進程概念
解決的問題 Swap空間解決系統物理內存不足問題 虛擬內存解決進程物理內存不足的問題

操作系統的文件管理

文件的邏輯結構

  • 邏輯結構的文件類型
    • 有結構文件:例如文本文件、文檔、媒體文件等
      • 文件內容由定長記錄和可變記錄組成
      • 定長記錄存儲文件格式、文件描述等結構化數據項
      • 可變長記錄存儲文件具體內容等
    • 無結構文件:例如二進制文件、鏈接庫等
      • 也稱為流式文件,如exe文件、dll文件、so文件等
      • 文件內容長度以字節為單位
  • 順序文件
    • 順序文件是指按順序存放在存儲介質中的文件
    • 磁帶的存儲特性使得磁帶文件只能存儲順序文件
    • 順序文件是所有邏輯文件當中存儲效率最高的
  • 索引文件
    • 可變長文件不適合使用順序文件格式存儲
    • 索引文件是為解決可變長文件存儲而發明的一種文件格式
    • 索引文件需要配合索引表完成存儲的操作

輔存的存儲空間分配

  • 輔存的分配方式
    • 連續分配:順序讀取文件內容非常容易,速度很快,對存儲要求高,要求滿足容量的連續存儲空間
    • 鏈接分配:鏈接分配可以將文件存儲在離散的盤塊中,需要額外的存儲空間存儲文件的盤塊鏈接順序
      • 隱式鏈接:隱式分配的下一個鏈接指向存儲在當前盤塊內,隱式分配適合順序訪問,隨機訪問效率低,可靠性差,任何一個鏈接出問題都會影響整個文件
      • 显示鏈接:不支持高效的直接存儲(FAT記錄項多),檢索時FAT表佔用較大的存儲空間(需要將整個FAT表加載到內存)
    • 索引分配:把文件的所有盤塊集中存儲(索引),讀取某個文件時,將文件索引讀取進內存即可

      每個文件擁有一個索引塊,記錄所有盤塊信息,索引分配方式支持直接訪問盤塊,文件較大時,索引分配方式具有明顯優勢

  • 存儲空間管理
    • 空閑表:空閑盤區的分配與內存的分配相似,首次適應算法、循環適應算法等,回收過程也與內存回收類似
    • 空閑鏈表:空閑鏈表法把所有空閑盤區組成一個空閑鏈表,每個鏈表節點存儲空閑盤塊和空閑的數目
    • 位示圖:位示圖維護成本很低,可以非常容易找到空閑盤塊,位示圖使用0/1比特位,佔用空間小

目錄管理

  任何文件或目錄都只有唯一路徑。文件常見的描述信息有:文件標識符、文件類型、文件權限、文件物理地址、文件長度、文件連接計數、文件存取時間、索引節點編號、文件狀態、訪問計數、鏈接指針等。

Linux文件基本操作

Linux目錄

目錄 描述
/bin 存放二進制可執行文件(ls,cat,mkdir),常用的命令都在該目錄下
/etc 存放系統管理和配置文件
/home 存放所有用戶文件的根目錄,使用戶目錄的基點,比如用戶user的主目錄就是/home/user
/usr 用戶存放系統應用程序,比較重要的目錄/usr/local本地系統管理員軟件安裝目錄
/opt 額外安裝的可選應用程序包所放置的位置
/proc 虛擬文件系統目錄,是系統內存的映射,可直接訪問這個目錄來獲取系統信息
/root 系統管理員的主目錄
/sbin 存放二進制可執行文件,只有root才能當問
/dev 用於存放設備文件
/mnt 系統管理員安裝臨時文件系統的安裝點,系統提供這個目錄是讓用戶臨時掛載其他的文件系統
/boot 存放用於系統引導時使用的各種文件
/lib 存放跟文件系統種的程序運行所需要的共享庫及內核模塊
/var 用於存放運行時需要改變數據得文件

Linux文件常用操作

  創建文件:touch file 修改文件:vim file 查看文件:cat file 刪除文件:rm file 創建文件夾:mkdir dir 刪除文件夾:rm dir/ 該方式會提示,不能刪除文件夾 遞歸刪除文件夾:rm -r dir/ 進入文件后,通過ls -al 命令可以查看該文件的文件類型,即第一個字符

Linux文件類型

  Linux的文件類型有:套接字(s)、普通文件(-)、目錄文件(d)、符號鏈接(b、c)、設備文件、FIFO(p)

Linux文件系統

文件系統概覽

  • FAT(File Allocation Table):例如FAT16、FAT32等,微軟Dos/Windows使用的文件系統,使用一張表保存盤塊的消息
  • NTFS(New Technology File System):WindowsNT環境文件系統,NTFS對FAT進行了改進,取代了舊的文件系統
  • EXT(Extended file System):擴展文件系統,這個是Linux的文件系統,EXT2/3/4數字錶示第幾代。
    • Boot Selector:啟動扇區,安裝開機管理程序
    • Block Group:塊組,存儲數據的實際位置

EXT文件系統

  Inode Table是存放文件Inode的地方,每一個文件(目錄)都有一個Inode,是每一個文件(目錄)的索引節點。文件名不是存放在Inode節點上的,而是存放在目錄的Inode節點上,列出目錄文件的時候無需加載文件的Inode。Inode bitmap即Inode的位示圖,記錄已分配的Inode和未分配的Inode。Data block是存放文件內容的地方,每個block都有唯一的編號,文件的block記錄在文件的Inode上。Block bitmap功能與Inode bitmap類似,記錄Data block的使用情況。superblock是記錄整個文件系統相關信息的地方,包括block和Inode的使用情況,以及時間、控制信息等。

  命令 df -T:查看該系統所掛載的磁盤信息,查看文件系統的Inode信息:dumpe2fs 指定某個一設備,如 dumpe2fs /dev/sda2,使用超級管理員權限查看:sudo dumpe2fs /dev/sda2,查看文件的具體信息:stat dumpe2fs.log,文件重命名: mv dumpe2fs.log dumpe2fs.bak.log。Inode編號才是文件的唯一標記,文件名不是文件的唯一標記。

操作系統的設備管理

廣義的IO設備

  對CPU而言,凡是對CPU進行數據輸入的都是輸入設備;對CPU而言,凡是CPU進行數據輸出的都是輸出設備

  • 按使用特性分類
    • 存儲設備:U盤、內存、磁盤等
    • 交互IO設備:鍵盤、显示器、鼠標等
  • 按信息交換的單位分類
    • 塊設備:磁盤、SD卡
    • 字符設備:打印機、Shell終端
  • 按設備的共享屬性分類:獨佔設備、共享設備、虛擬設備
  • 按傳輸速率分類:底速設備、中速設備、高速設備

IO設備的緩衝區

  由於CPU與IO設備的速率不匹配,所以需要IO設備緩衝區,這樣可以減少CPU處理IO請求的頻率,提高CPU與IO設備之間的并行性。專用緩衝區只適用於特定的IO進程,當這樣的IO進程比較多時,對內存的消耗也很大,操作系統劃出可供多個進程使用的公共緩衝區,稱之為緩衝池。

SPOOLing技術

  SPOOLing技術是關於慢速字符設備如何與計算機主機交換信息的一種技術,利用高速共享設備將低速的獨享設備模擬為高速的共享設備。邏輯上,系統為每一個用戶都分配了一台獨立的高速共享設備。SPOOling技術把同步調用低速設備改為異步調用。SPOOLing技術在輸入、輸出之間增加了排隊轉儲環節(輸入井、輸出井),SPOOLing技術負責輸入(出)井與低速設備之間的調度,邏輯上,進程直接與高速設備交互,減少了進程的等待時間。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

品讀迭部_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

初到迭部,就被這優美的景緻深深地迷住了。

這是一片被自然格外眷顧的土地,森林密布,群峰逶迤高聳,有的雄奇峻偉,有的博大秀美,河谷深切幽長。這裏像是一塊世外桃源,偶爾遇見幾個村民,遠遠地露出燦爛的笑容,熱情地沖我們招手。

在蜿蜒卻平坦的山路上行駛,一路山環路轉,天高雲清,蒼莽的大山如屏似劍,層層疊疊,間或有幾處村落,如珠落玉盤般點綴其間。在一處叫日爾那的村莊,我們發現這村子的每一道門、每一扇窗都蘊藉着厚重的傳統,同時又不乏現代文明的對接。這個村支部書記的弟媳竟是英國人,兒媳是著名的歌唱家,他們的家庭布置,保留着藏民的一切傳統,而家用電器也樣樣齊備。

多年來,各地的古街道、古建築不斷快速消失,幸好,迭部還保留着這些古老的農家小院。曾經看到一篇文章,提到西方不少的現代化富國,卻把“落後”村鎮的歷史文化遺產保護得極好,使之成為他們炫耀於世人的國寶。一個國家的現代與文明和歷史文化遺產有着千絲萬縷的聯繫,誰懂得這一點,誰就擁有了古今互動的輝煌。想必迭部已滲透了這些道理,所以才有如此和諧的景緻。

1935年9月13日-15日,中國工農紅軍長征途經現旺藏鄉政府駐地東南側茨日那村,毛澤東曾居住在該村一幢木樓上,並在這裏向紅四團下達了“以三天的行程奪取臘子口”的命令。在這個與中國革命歷史密切相關的小村莊的河邊,有兩棵大樹,據說紅四團曾在樹底下召開會議。如今,其中一棵經不起歲月的風霜轟然倒地,橫跨在河上,形成一座自然的“獨木橋”,另一顆仍筆直地矗立,見證歷史。

臘子口系藏語之轉音,意為“險絕的山道峽口”,是迭部通往漢族地區的門戶和重要交通孔道。臘子口周圍群山聳立,峽口如刀劈斧削,臘子口河從峽口奔涌而出。沿着盤山公路一路前行,迷濛的細雨不知何時悄然灑落,雨林里的生命籠罩着一層層神秘的面紗。動物都悄無聲息,大多數生物躲藏在豐盛茂密而又綠意盎然的植物簾幕後面,隱秘而又安靜地生活着。

漫步於臘子口的山谷棧道,山崖的石壁上鋪滿苔蘚,一股山泉從茂密的森林深處湧出,經過這石壁時,像不忍攪擾這寂靜的山林,輕輕地放慢了腳步,柔緩地漫過來,在山腳下匯成溪流,又流向山底。空山不見人,我們卻在密林深處看到了一個裝滿了野菜的竹筐,同行的一個人上前背起竹筐,不想試了幾回,這個壯年小伙卻被壓得站不起來。山民天天如此負重,讓我們不由地對他們的隱忍與堅強心生敬意。

“天險臘子口”是舉世聞名的臘子口戰役紀念地。1935年9月,毛澤東、周恩來率領中國工農紅軍第一方面軍,越過雪山草地后,全面攻克臘子口天險,使國民黨企圖阻擋紅軍北上抗日的陰謀徹底破產。1980年,甘肅省人民政府在臘子口戰役紀念地修建了紀念碑,紀念碑南、西兩面鐫刻着楊成武將軍親筆題字“臘子口戰役紀念碑”;北面鐫刻着省人民政府對臘子口戰役的簡介和對革命烈士仰慕緬懷之碑文:“臘子口戰役的輝煌勝利將永遠彪炳我國革命史冊;在臘子口戰役中光榮犧牲的革命烈士永垂不朽!”

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

山腳下,一座座小木屋在雨幕中安靜地佇立着,周圍茂盛的植物以及盛開的花朵毫無保留地張揚着她們的美麗。歷史成為永久的過去,卻可以激勵我們珍惜今天的所有。

迭部的美是一種整體性的空間美,一種生活意境美,一種文化山水美。它與我們的心靈如此貼近,以至於所有的偶遇都彷彿是早有默契。山、水、森林、動物和轉經的風車,此時此地都成為這風景的一部分。時常會經過一片片草場,悠閑的馬和牛點綴在林木蓊鬱、堆翠疊綠之中,如此和諧美妙。

一路上,叫貢保的小伙子陪伴我們,他笑聲爽朗,為我們的行程增添了不少樂趣。貢保的解說下了功夫,他的解說是根據自己的體驗和理解對迭部做出的解讀。這樣的解說,是獨一份的帶着鮮活體驗的、獨屬於貢保的解說。

言談中貢保不經意透露出憂慮,他提醒說,過去植被比現在茂密得多,現在我們看到的已經是被破壞過的植被,我不知道將來會有怎樣的後果。

一個導遊能有如此的悲憫情懷,“先天下之憂而憂”,我不由地對他的經歷產生好奇。他很爽快地告訴我,在蘭州上了幾年大學,畢業后又當導遊。但是父母希望他回到家鄉,他便依依不舍地告別蘭州,回到迭部,當上了小學語文老師。這幾天當導遊,是縣裡通知他得“重操舊業”幾天。他有一個美好的願望,希望能開辦一個旅遊公司,通過旅遊去保護迭部的生態環境。

正是因為這些可敬可愛的迭部人,才使我們深切地感受到自然的眷顧以及人文的關懷,他們以各自不同的表達方式對土地、自然、家園做最高形式的致敬,使我們回歸一種悠久的傳統中。

據說“迭部”藏語意為“大拇指”。傳說在古代,有一位名叫涅甘達娃的神仙路過此地,被密密匝匝的山石擋住了去路。他伸出大拇指輕輕一摁,頓時,山石開裂,驚天動地,顯露出一條長長的通道來。這個美麗的神話傳說,聽起來卻是如此貼切,因為不論是這裏的景緻還是勤勞善良的人民,都一樣令我們由衷地豎起“大拇指”。

本版圖片除署名外均來自網絡

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

文化澳門 風景正好_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

演員在澳門大三巴牌坊前進行澳門國際青年舞蹈節巡遊表演。
  新華社記者 張金加攝

澳門是一座文化城市,歷史和文化是澳門的財富。幾百年來,中西文化的交流與嬗變,賦予澳門獨特的文化魅力。

回歸祖國后,得益於“一國兩制”安排,澳門多元文化碰撞融合,交相輝映,來自世界各地的人在此和諧共處。在中央的支持下,澳門充分發揮自身優勢,助力國際人文交流,促進世界文明互鑒。

中西世界的萬花筒

“我們常說澳門有3張名片:一是2005年,澳門歷史城區被列入《世界遺產名錄》,成為中國第31個世界文化遺產;二是2017年,聯合國教科文組織授予澳門‘創意城市·美食之都’稱號;三是澳門多彩的非物質文化遺產,澳門的文化便蘊含在這些珍貴的文化遺產中。” 澳門特區政府文化局局長穆欣欣介紹,澳門是中西文化交融之地,擁有得天獨厚的歷史文化優勢。

“漫步在澳門的大街小巷,原汁原味的中西建築隨處可見,許多擁有幾百年歷史。穿梭其中,滄桑的歷史和鮮活的生命力共存,這種感覺很奇妙。”在北京工作的閆先生告訴記者,他去過澳門4次,最大的感受是,澳門城市雖小卻包羅萬象,古今中外各種元素在這小小的萬花筒里,組合出了各種風景。

媽閣廟、觀音堂、蓮峰廟等中式廟宇飽含古老中華神韻,給人以歷史的厚重感;澳門市政廳廣場等西式建築則色彩明快,熱情洋溢,風情萬種,讓人彷彿置身南歐小城。來自印度、巴基斯坦、葡萄牙、莫桑比克等世界各地的人生活於此,多元開放的文化讓他們過得愜意自然。

“你可以在澳門的超市買到葡萄牙各式各樣的食物,我常去的那家超市的老闆還會講葡語。”澳門大學的葡萄牙語教授萊昂諾爾·塞亞布拉已經在澳門待了32個年頭,她的兒子在澳門出生長大,畢業后也選擇了在澳門工作生活。

澳門藝術節、音樂節、國際龍舟賽、格蘭披治大賽車……這些承載着澳門歷史文化的活動,每年吸引數不勝數的遊客到訪並參与其中,向世界展示着澳門的獨特魅力。

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

既要傳承也要創新

雖說是中西文化交融,但中華文化一直是澳門的主流。“西方文化影響主要體現在建築風格、多元飲食、習俗外貌等表層,澳門人思維、觀念的中庸尚和、忠孝禮義,依然來自中華文化,它才是支撐澳門文化的基石與主流。”全國政協委員、澳門地產業總商會會長鍾小健這樣定義澳門的文化特性。

澳門有“澳門神像雕刻”“澳門哪吒信俗項目”“澳門道教科儀音樂”“澳門媽祖信俗項目”“粵劇”“南音說唱”“魚行醉龍節”和“涼茶製作技藝”等8項非物質文化遺產入選國家級名錄,它們是澳門對中華民族傳統文化傳承與弘揚的重要見證。“保護好它們是我們的使命。在保護的前提下,我們做文化推廣,促進文化的傳承和創新。”穆欣欣說,近年來,澳門不僅每年舉行文化遺產嘉年華,而且從2010年開始,着手將一些文物建築活化,如恭弘=叶 恭弘挺將軍故居、孫中山在澳門行醫的中西藥局舊址、冼星海紀念館等。這些展館連同林則徐紀念館、鄭家大屋等,一同訴說著澳門與中華歷史文化的血脈連接。

回歸祖國后,澳門與內地的頻繁交流,為文化澳門注入更新元素。澳門藝術博物館和故宮博物院連續20年合辦的故宮專題文物特展,成為澳門人文化生活的重要部分。據文化和旅遊部副部長張旭介紹,黨的十八大以來,內地與澳門互派優秀藝術團體和藝術家,積极參加各自舉辦的區域性、國際性文化活動,項目年均交流量達180項,交流人數近3000人次,2018年較2012年交流項目增長10%,交流人數增長30%,不僅豐富當地民眾文化生活,更為自身文化發展注入活力。

着力建設“人文灣區”

炫目的色彩、特色的服裝、精彩的表演、多元的文化,這是日前剛剛結束的2019澳門國際幻彩大巡遊帶給觀眾的感受。澳門開埠400多年,文化開放而包容。在這裏,你可以聽到教堂的鐘聲與寺廟的鐘鼓聲此起彼伏,也可以看到耶穌聖像出遊活動與媽祖誕辰的祭拜活動同時進行。春節、中秋節等中國的傳統節日,慶祝活動十分隆重;聖誕節、復活節等西方節日,活動氛圍也頗有聲勢。

因此,澳門注重利用其文化特色來推動東西方文化交流。“澳門的藝文活動都着重突出多元融合的文化特徵,推動不同民族、不同國家之間的互動互鑒,溝通心靈,融合情感。” 澳門婦女聯合總會會長賀定一表示。

正是得益於多元文化的共融,今年出台的《粵港澳大灣區發展規劃綱要》明確將“建設以中華文化為主流、多元文化共存的交流合作基地”作為澳門的發展定位之一。這讓澳門文化界人士備感振奮,既是對澳門歷史上文化功能的肯定,更賦予澳門文化發展新的使命和機遇,讓更多人有機會一睹“文化澳門”風采。

“一直以來,澳門文化局致力於粵港澳共同推進中華優秀傳統文化傳承與發展,發揮三地地域相近、文脈相親的優勢,合作舉辦各類文化遺產展覽、展演活動,大力支持弘揚以粵劇、龍舟、武術、醒獅等為代表的嶺南文化,彰顯獨特文化魅力。”穆欣欣表示,此外,文化局還致力於推進澳門與葡語國家的文化合作,已經連續兩年成功舉辦“相約澳門——中葡文化藝術節”。隨着粵港澳大灣區建設的不斷深化和加強,澳門正逐漸把中葡文化交流成果帶進“人文灣區”的建設之中,進行融合和互補。

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

就兩點!有面子 大空間!7萬起至30萬我看好這幾款!_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

明銳的1。4T車型擁有着非常不錯的性能,發動機能夠提供150匹馬力和250N·m的最大輸出,百公里加速僅為8。39s,相較於同門兄弟的大眾車型要快上不少,不知道這屬不屬於彩蛋。雪佛蘭-樂風RV優點:空間實用缺點:噪音偏大推薦人群:正準備要組建家庭的年輕人推薦車型:2016款 1。

作為有車一族的你們,肯定有過這樣的經歷:周末一家人去超市大掃貨,看見很多想買的東西都有折扣優惠,結果發現自己的車尾廂裝不下,買了也帶不回家;過年時候在家鄉收穫到了一大堆的土特產,正準備要裝車帶走時,發現自己的車尾廂裝不下那麼多東西。

尾廂空間的大小,成為了不少人衡量一輛車值不值得購買的條件之一,對於上班一族而言,也許尾廂空間不太重要,但是“養兵千日 用兵一時”,總會有能夠用得上的一天,所以有一個大尾廂,還是很有必要的。

很多人聽到大尾廂,就很自然會想到旅行車或者SUV,沒錯,旅行車的確是擁有這大尾廂,但是在國內推出旅行版車型的廠商很少,消費者的選擇很少,除了旅行車之外,其實也有大尾廂車型可供選擇。

上汽大眾-朗行

優點:尾廂空間大

缺點:懸架支撐偏弱

推薦人群:同時追求動力與空間的人群

推薦車型:2015款 230TSI DSG豪華版(16.29萬)

朗行長得實在是太像旅行車了,但其實它是一款大兩廂車,車頭部分跟朗逸沒有什麼區別,尾部造型過度非常協調,整輛車看起來比朗逸好看很多,推薦購買的230TSI DSG豪華版車型,雖然指導價高達16.29萬,但是算上終端優惠之後,裸車價在14萬以內。

內飾已經不用再評價了,就是那套千年不變的內飾設計,朗行的亮點在於它的後備廂,尾廂空間規整,後排座椅放倒后更加是帶來誇張的空間表現,尾廂的開口也很大,放置行李時比較方便。

1.4T加上7速雙離合變速箱的動力總成,油耗表現比1.6L車型還要出色,百公里油耗平均在7L左右,如果是1.4T的手動擋車型還能更加省油,與1.6L車型相比,除了油耗表現更加好,還能夠提供更加充沛的動力,這明顯是更加好的選擇。

斯柯達-明銳

優點:外形帥氣,動力強勁

缺點:品牌影響力低

推薦人群:需要大空間轎車的人群

推薦車型:2017款 280TSI DSG尊行版(17.99萬)

幾年前的斯柯達車型,說實話,真的不太符合國人的審美,經過時間的沉澱,現在斯柯達的外形設計,就像是去了一趟韓國一樣,時尚靚麗了許多,最喜歡的就是明銳的頭燈設計,真的像人的眼睛,還帶有眼睫毛。

三廂轎車使用掀背式尾廂門,這就是明銳的一大特色,也是因為掀背式尾廂門,得到了超大的尾廂開口,超大的尾廂空間,千萬不要因為它是三廂車就看小它。

明銳的1.4T車型擁有着非常不錯的性能,發動機能夠提供150匹馬力和250N·m的最大輸出,

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

百公里加速僅為8.39s,相較於同門兄弟的大眾車型要快上不少,不知道這屬不屬於彩蛋。

雪佛蘭-樂風RV

優點:空間實用

缺點:噪音偏大

推薦人群:正準備要組建家庭的年輕人

推薦車型:2016款 1.5L 自動智行版(8.99萬)

二三十歲的年輕人,剛剛成立了自己的家庭,結婚生子,他們的生活支出不少,需要一輛經濟實惠,同時又要可靠耐用、空間夠大,雪佛蘭的樂風RV就是這麼一輛車。

作為一款15年年底上市的車型,設計時尚,非常符合時下年輕人的審美,尤其是稱為“晴空藍”的車身顏色,非常亮眼,高配車型的遠近光一體式氙氣大燈造型很好看,尾部造型協調,就像是一輛縮小的旅行車一樣。

內飾的設計雖然簡單,但是很有層次感,整體而言給人一種簡約居家的感覺,最大的亮點之處就是高配車型的儀錶盤造型,螺旋式的指針非常具有新意,轉動的時候就像雷達在掃描一樣。

如果與文中提到其它幾款車型相比較,樂風RV的空間表現一般,但是不要忘記,樂風RV只是一輛小型車,作為一輛大一號的小型車,在同價位同級別的車型中,它的空間表現出色,後排腿部空間寬裕,尾廂空間規整。

動力方面,樂風RV使用1.5L自然吸氣發動機,有5MT和4AT兩台變速箱選擇,5MT車型只有一款,可以看出廠家對4AT很有信心,變速箱實際的表現也是不錯,只要不是非常激烈的駕駛風格,完全夠用。

奔馳C級 旅行轎車

優點:典雅、實用

缺點:售價高昂

推薦人群:經濟實力雄厚的人群

推薦車型:2015款 C 200 旅行轎車(41.90萬)

奔馳C級旅行轎車,在國內一直是信仰般存在,即使算上市場終端優惠,C 200 旅行轎車裸車價都要37萬左右,相較於國產的長軸距C級三廂版的售價,毫無性價比可言,但是它真的不值得一提嗎?

奔馳C級旅行轎車所有的亮點都集中於尾部,與三廂版完全不同的造型,尾燈的樣式也不一樣,點亮之後有點像上一代E級轎車的尾燈,整個尾部顯得很扁,並且很修長,如果不是旅行車的愛好者,估計不太會喜歡。

內飾還是那套奔馳最新的家族式設計,簡約優雅,更加體現出旅行車的理念,檔次感十足。奔馳C級旅行轎車是標準軸距版本,所以後排座椅的空間還不能用寬裕來形容,不過寬大的後備廂為它爭色不少,將後排座椅放倒后還能夠形成比較平整的地台,非常實用。

總結

國內消費者好像永遠都不會滿足於車廂的空間,所以才造就了今天火熱的SUV市場,雖然SUV有着較大的空間表現,但是油耗偏高是普遍的問題,轎車反而在油耗這方面做得相對出色,像是朗行和樂風RV這種大兩廂車型,掀背式的明銳,冷門的C級旅行轎車,都夠用大部分人的需求。本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

你沒看錯!不到10萬居然能買到這些大7座SUV!_網頁設計公司

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

5T才是風光580的主力銷售車型。綜合來看,風光580擁有更豐富的安全配置以及動力搭配,當然價格也要比CX70高出一截。比亞迪S6指導價:8。79 – 12。39萬比亞迪,這個充滿非議的品牌,如今在新能源領域也算是混的順風順水。S6作為比亞迪的首款SUV,至今已經5年多的光景了,上市以來的銷量還是挺不錯的。

等等,細想一下好像還真有幾款符合二狗要求的車,記得上個月去大涼山參加試駕活動,路上有一款SUV的上鏡率挺高的,趕緊上網一查,居然是款7座SUV。

長安CX70

指導價:6.89 – 8.49萬

單看這價格,相信許多人絕對不會把它和7座中型SUV聯想到一塊。直到最近在路上頻繁見到它的身影,才知道還真有這麼一款車存在。

首先說明一點,CX70屬於長安商用推出的首款SUV,它與我們熟悉的CS75屬於兩個不同的部門。這款車於2016北京車展上市,上來就是中型7座SUV,的確挺受關注的。

老實說,第一眼看到CX70並沒有發現太多的模仿痕迹,設計談不上多麼精緻漂亮,不過硬朗的造型倒也挺招人喜歡。在所有中國品牌里,長安的設計還是挺值得說道的。

既然定位中型7座SUV,CX70的尺寸當然值得關注。長寬高分別為4680/1800/1775mm,軸距為2780mm,這樣的數據放到我們常見的中型SUV里沒有太多優勢。

反倒是內飾部分讓人眼前一亮,進入CX70車內,車內的設計氛圍與長安“麵包車”沒有任何關聯。整個內飾清晰大方,沒有過多繁雜的設計,用四個字概括就是恰到好處。

值得一說的是中控那塊8英寸大屏,雖然檔次感不高,如同一個廉價的安卓平板鑲嵌其中,但其可以與安卓手機互聯,更誇張的是還支持車載WiFi功能,結合其不到9萬的售價,夫復何求?

動力方面,目前只有1.6L + 5MT的動力配置,發動機最大馬力117ps,峰值扭矩150Nm。據了解年底將推出6AT的自動擋版本。

不用擔心“小馬拉大車”的問題,CX70自然不能與漢蘭達銳界這樣的車型相提並論,但足夠滿足日常使用。

東風風光580

指導價:7.29 – 9.99萬

第一眼看上去,風光580的造型要比CX70入流,車頭的線條非常流暢。如果蒙住logo,你一定想不到這是一家做“麵包車”的廠家設計出來的,整體來看風光580的有着同級非常高的顏值。

風光580於今年6月上市,估計就是瞄準CX70來的,風光580的尺寸與CX70非常接近,長寬高分別為4680/1845/1715mm,軸距與CX70一樣均為2780mm。

內飾方面,風光580的內飾設計相比之下比較平庸,看上去沒有CX70上檔次。不過好在中控10.1寸的大屏挽回了些分數,同樣集成了市面上主流功能,不錯。

配置方面風光580有後來者的優勢,除了最低配配備的是雙氣囊外,

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

其餘車型均配備了四氣囊,這一點在這級別車型里很厚道;除此之外,兩款CVT版本的還標配了ESp以及上坡輔助系統,除最低配外的手動版本也支持選裝。風光580在安全配置方面考慮的很周全,點個贊。

風光580的動力配置則比CX70豐富多了,分為1.8L和1.5T兩種動力版本,其中1.8L只匹配5MT變速箱,1.5T則有6MT和CVT兩種變速箱可選。由此可見,1.5T才是風光580的主力銷售車型。

綜合來看,風光580擁有更豐富的安全配置以及動力搭配,當然價格也要比CX70高出一截。

比亞迪S6

指導價:8.79 – 12.39萬

比亞迪,這個充滿非議的品牌,如今在新能源領域也算是混的順風順水。S6作為比亞迪的首款SUV,至今已經5年多的光景了,上市以來的銷量還是挺不錯的。

外形相信大家都很熟悉了,這裏叫獸要強調的是S6的尺寸。S6的長寬高分別達到了4810/1855/1725mm,軸距為2720mm,基本是達到了一台合格的中型SUV的尺寸標準。

內飾方面,以現今的眼光去看S6的內飾有些落伍,內飾設計線條有些複雜,給人一種凌亂的感覺。好在配置一向是比亞迪的強項,以指導價10.29萬的1.5T 7座版本為例,6氣囊、無鑰匙進入/啟動、天窗、真皮方向盤、導航、自動空調等等實用配置應有盡有,這也是S6暢銷多年的一大原因。

S6有5座和7座兩個版本,其中7座分為1.5T手動、2.0L手動以及2.4L自動三個版本。叫獸在這推薦的是1.5T版本,相比而言,這款發動機的技術更新,動力與油耗也兼顧的更好;至於沒有推出7座版1.5T自動擋的原因,我想應該是考慮到S7的存在。

比亞迪S7

指導價:10.69 – 14.69萬

比亞迪S7是繼S6后又一款中型SUV,從命名方式就知道,S7的定位比S6要高,當然售價也更高。

這裏說的價格更高只是相比S6而言,作為一款中型7座SUV,頂配不到15萬的售價放在同級里依然非常有優勢,並且依然延續了比亞迪高配置的傳統。

S7的尺寸比S6略大,長寬高分別為4835/1855/1720mm,軸距比S6多出10mm達到了2730mm,依然是標準的中型SUV的尺寸。S7全系都是7座的配備,這也是其最大的賣點之一。

配置方面可謂豪華,ESp、胎壓監測、自動空調等等全部標配,中配以上車型甚至還配備了前後頭部氣簾、導航等等你能在這價位車型里看得到的配置。

動力方面,S7拋棄了自然吸氣發動機,全系均搭載自主研發的1.5T或2.0T渦輪增壓發動機,匹配6MT變速箱或DCT雙離合變速箱。

豐富的配置、充足的動力以及足夠便宜的價格一直是S7的幾大賣點,月均5000的銷量算不上高,但結合S6一起算的話,相信這兩台車的銷量還是會讓比亞迪滿意的。

總結:

在以往的認知中,7座SUV都是動輒二三十萬的價格。這回中國品牌再次抓住市場“痛點”,以及極具優勢的價格切入市場,長安CX70上市以來月均1萬以上的銷量充分說明有需求就會有市場的道理。

不要看不上這樣的車型,銷量說明一切。在汽車保有量日益飽和的大都市,未來將是這些三四線小城市的市場,而咱們中國品牌,不在此時超車更待何時?本站聲明:網站內容來源於http://www.auto6s.com/,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

Counterpoint公布2020第三季報告,聯發科逆襲成為最大手機晶片供應商_網頁設計公司

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

2020 年因為疫情的持續擴散,對各種產業來說都是個凜冬,然而還是有些企業在冷清的時局中創下不錯的成績,聯發科就是其中的一員。根據市場研究機構 Counterpoint 最新公布的 2020 年第三季報告中,更是顯示因為中階手機的蓬勃發展與在關鍵地區的市場持續增長,幫助聯發科逆襲高通,於第三季中登上最大智慧手機晶片供應商的寶座。

Counterpoint公布2020第三季報告,聯發科逆襲高通成為最大手機晶片供應商

在 2020 年第三季中,聯發科在 100 至 200 美元價位的手機間強勁增長,以及於至中國、印度等地區的增長,讓聯發科以 31% 的市場佔比成為最大的智慧手機晶片組供應商。於此同時,2020 年第三季最大的 5G 晶片供應商由高通穩坐,在全球市場的 5G 手機中擁有 39% 的佔比。5G 手機的需求量在 2020 年第三季翻了一倍,光是在這一季裡面售出的智慧型手機中有 17% 是 5G 手機,隨著 Apple 推出其 5G 產品線後,更是加速了 5G 手機的銷售。2020 年第四季度發貨的所有智慧型手機中,預計會有三分之一支援 5G,所以高通仍有可能於 2020 年第四季重新奪回榜首位置。

在對聯發科市場佔比增長的部分,分析師表示聯發科在 2020 年第三季市場佔比猛烈增長主要原因有三。首先是中階智慧型手機與新興市場的強勢表現相當亮眼,美國隊華為的禁令也使得最終讓 Samsung、小米、榮耀等 OEM 廠勝出。與去年同期相比,聯發科晶片在小米手機的佔比增長 3 倍以上,而聯發科也利用美國禁令的時機彌補了晶片需求缺口,使得由台積電製造、經濟實惠的聯發科晶片迅速成為許多 OEM 廠商填補空白的第一選擇。

從另一個方面來看,高通在 2020 年第三季裡面於高階領域與一年前相比也取得了強勁的市佔增長,這再次得益於 HiSilicon 的供應問題,然而高通在中階市場面臨著聯發科的競爭,顯然這一仗打得比較吃力。透過激進的訂價策略和主流 5G 晶片產品的推出,兩者之間激烈的兢爭在 2021 年還會繼續。

高通和聯發科都重新對各自的產品線重新洗牌,消費者對最新科技的關注在其中發揮了關鍵作用。去年,聯發科推出了一款以遊戲為主的曦力 G 系列晶片,而天璣系列晶片則將 5G 導向更經濟實惠的路線,全球最便宜的 5G 行動裝置 realme V3 就是由聯發科提供支援。分析師表示,晶片供應商的當務之急是將 5G 帶給大眾,從而釋放如雲端遊戲等消費者 5G 使用的潛力,進而提升對更高時脈 GPU 和更強大的處理器需求。

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

◎資料來源:Counterpoint

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

JavaScript的歷史由來及簡介_網頁設計公司

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

JavaScript的歷史由來及簡介

前言

這次寫一篇對於JavaScript的簡介,我們知道的編程語言有很多種,比如Java、C++、Python等等,每種編程語言都有其獨具的特色,不論是語法格式還是表達形式,都能讓每個程序員沉澱在知識的海洋里難以自拔。即每種編程語言都有無限的延展性,但如果我們考慮問題的時候追溯其根源,其實也不難發現每種編程語言都具有共同的初心,最直白的話就是人與計算機進行溝通的語言,在現實生活中,見什麼人說什麼話我們都很清楚,那在與計算機溝通的世界中,做什麼事用什麼編程語言溝通也是同樣的道理,前提就是我們要了解這些編程語言,在你需要選擇的時候做出正確的判斷,這也正是我寫此篇文章的意義。

JavaScript的歷史由來

 

 
在1994年,當時的網景公司(Netscape)憑藉Navigator這個瀏覽器成為了Web時代開啟最著名的第一代的互聯網公司。當時所用的第一版本的瀏覽器就是下圖中的瀏覽器,相信有很多年輕朋友都沒有見過這種瀏覽器。如果大家回想十年前或是十五年前,大家用的瀏覽器應該是IE瀏覽器,那個時候的瀏覽器跟現在的比如說谷歌瀏覽器火狐瀏覽器等相比而言,那就是天壤之別了。

 

 

 

像上圖中這是最早版本的瀏覽器,整個瀏覽器都是靜態的,也就是用HTMLCSS寫的,並沒有像今天的各種瀏覽器一樣具有各種各樣的動態效果了,比如像網頁的圖片輪播、鼠標懸浮切換等效果。

網景公司就想在原來的靜態頁面的基礎上添加一些動態的效果,這時候網景公司出來一個很牛的人物叫布蘭登·艾奇,他用不到兩周的時間就設計出了能在網頁上實現動態效果的編程語言。

 

 

就是上圖中的人設計的這中能實現網頁動態效果的編程語言,並將其編程語言命名為JavaScript

為什麼會命名為JavaScript呢?原因是在當時,Java非常火,網景公司希望借用Java在當時的名氣來進行推廣。其實事實上呢,JavaScript除了語法上有點像Java外,別的地方都跟Java沒有任何關係。

 

 

JavaScript和ECMAScript的關係

從上面講的JavaScript的由來中,我們就知道JavaScript由網景公司的布蘭登·艾奇開發出來的,一年後,微軟又模仿JavaScript開發出了一種編程語言叫JScript,再後來,陸續又有別的商家推出JavaScript的不同實現語言。這就導致JavaScript的語法和特性日益混亂,其標準化問題被提上日程。最終由歐洲計算機製造商協會(ECMA)以JavaScript1.1為藍本,制定了【ECMA-262】標準,並由此標準定義了一種新腳本語言ECMAScript。隨後,ISO也採用ECMAScript作為標準,各瀏覽器廠商便紛紛開始將ECMAScript作為各自JavaScript實現的基礎。

 

 

那到底JavaScriptECMAScript有什麼關係呢? ECMAScript其實並不等同於JavaScript,它只是JavaScript的核心標準(語法、類型、語句、關鍵字、保留字、操作符、對象),而JavaScript還包括文檔對象模型(DOM)和瀏覽器對象模型(BOM)等。其中各主流瀏覽器對ECMAScript的支持都還不錯,但對DOM的支持相差較大,對於BOM一直沒有相關標準。最後再簡單總結一下就是:ECMAScript是一種語言標準,JavaScript是對ECMAScript的一種實現

JavaScript版本

  • 1997年06月 :發布首版。

  • 1997年06月:修改規範完全符合ISO/IEC 16262國際標準。

  • 1998年6月,ECMAScript 2.0版發布。

  • 1999年12月,ECMAScript 3.0版發布,成為JavaScript的通行標準,得到了廣泛支持。

  • 1999年12月:增加正則、更好的文字處理、新的控制語句、try/catch異常處理、更加明確的錯誤定義,数字輸出格式等等。放棄發布。

  • 2007年10月,ECMAScript4.0版草案發布,對3.0版做了大幅升級,預計次年8月發布正式版本。草案發布后,由於4.0版的目標過於激進,各方對於是否通過這個標準,發生了嚴重分歧。以Yahoo、Microsoft、Google為首的大公司,反對JavaScript的大幅升級,主張小幅改動;以JavaScript創造者Brendan Eich為首的Mozilla公司,則堅持當前的草案。

  • 2008年7月,由於對於下一個版本應該包括哪些功能,各方分歧太大,爭論過於激進,ECMA開會決定,中止ECMAScript 4.0的開發,將其中涉及現有功能改善的一小部分,發布為ECMAScript3.1,而將其他激進的設想擴大範圍,放入以後的版本,由於會議的氣氛,該版本的項目代號起名為Harmony(和諧)。會後不久,ECMAScript 3.1改名為ECMAScript 5。

  • 2009年12月:完善了ECMASript 3版本、增加”strict mode,” (嚴格模式)、以及新的功能,如getter和setter、 JSON庫支持和更完整的對象屬性。ECMAScript 5.0版正式發布。Harmony項目則一分為二,一些較為可行的設想定名為JavaScript.next繼續開發,後來演變成ECMAScript 6;一些不是很成熟的設想,則被視為JavaScript.next.next,在更遠的將來再考慮推出。

  • 2011年06月:ECMAscript 5.1版發布,並且成為ISO國際標準(ISO/IEC 16262:2011)。

  • 2013年3月,ECMAScript 6草案凍結,不再添加新功能。新的功能設想將被放到ECMAScript 7。

  • 2013年12月,ECMAScript 6草案發布。

  • 2015年06月:第六版的名字有很多,可以叫ECMAScript6 (ES6) ,也可以叫ECMAScript 2015 (ES2015) 。

  • 2015年6月17日,ECMAScript 6發布正式版本,即ECMAScript 2015。

  • 2016年06月:也被稱為ECMAScript 2016。完善ES6規範,還包括兩個新的功能:求冪運算符(*) 和array.prototype.includes方法。

  • 2017年06月:增加新的功能,如併發、原子操作、Object.values/Object.entries、 字符串填充、promises、 await/asyn等等。

JavaScript的組成部分

 

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。

 
JavaScript的三個主要組成部分是:ECMAScript(核心),DOM(文檔對象模型),BOM(瀏覽器對象模型)

 

ECMAScript(核心)

【ECMA-262】並沒有參照web瀏覽器,規定了語言的組成部分,其具體內容包括語法、類型、語言、關鍵字、保留字、操作符、對象等。

ECMAScript的兼容

  1. 支持【ECMA-262】描述的所有“類型、值、對象、屬性、函數以及程序語法和語義” 。

  2. 支持Unicode字符標準。

  3. 添加【ECMA-262】沒有描述的更多“類型、值、對象、屬性和函數”,【ECMA-262】說的這些新增特性,主要是指該標準中沒有規定的新對象和對象的新屬性。

  4. 支持【ECMA-262】中沒有定義的“程序和正則表達式的語法”。也就是說可以修改和擴展內置的正則表達式語法。

DOM(文檔對象模型)

文檔對象模型(DOM)是針對XML但經過擴展用於HTML的應用程序編程接口(API)。DOM把整個頁面映射為一個多層次節點結構。HTML或者XML頁面中的每個組成部分都是某種類型的節點,這些節點又包含着不同類型的數據。

 

 

其實說白了,文檔對象模型(DOM)就是操作網頁上的那些標籤,來實現動態的效果。

在DOM中,頁面一般可以用分層節點圖表示。

 

 

DOM級別

  • DOM1級於1998年10月成為W3C的推薦標準。BOM1由兩個模塊組成分別是DOM coreDOM HTML

  • DOM core:規定如何映射基於XML的文檔結構,以便簡化對文檔中任意部分的訪問和操作。

  • DOM HTML:在DOM core的基礎上加以擴展,添加了針對HTML的對象和方法。

  • DOM2級在原來DOM的基礎上有擴充了鼠標和用戶界面事件、範圍、遍歷等細分模塊,通過對象接口增加了對css的支持。包括以下模塊:

  1. DOM Views(DOM視圖):定義了跟蹤不同文檔視圖的接口。

  2. DOM Events(DOM事件):定義了事件與事件處理的接口。

  3. DOM Traversal and Range(DOM遍歷和範圍):定義了遍歷和操作文檔的接口。

  • DOM3級則進一步擴展了DOM,引入了加載和保存模塊以統一方式加載和保存文檔的方法;新增了DOM驗證模塊主要還是驗證文檔的方法。

BOM(瀏覽器對象模型)

瀏覽器對象模型(BOM)是處理瀏覽器窗口框架,我們習慣上把所有針對瀏覽器的JavaScript擴展算作是BOM的一部分。包括以下:

  1. 彈出新瀏覽器窗口的功能。

  2. 移動、縮放和關閉瀏覽器窗口的功能。

  3. 提供瀏覽器所加載頁面的詳細信息的navigator對象。

  4. 提供瀏覽器所加載頁面的詳細信息的location對象。

  5. 提供用戶分辨率詳細信息的screen對象。

  6. 對cookies的支持。

  7. 像XMLHttpRequest和IE的ActionXobject這樣的自定義對象。

瀏覽器對象模型(BOM)其實很簡單,它包含了當前瀏覽器上的一些操作,比如說像關閉按鈕、刷新按鈕、前進和後退按鈕等等。

綜上來說,JavaScript就包含了以上這三部分內容,第一部分就是核心基礎語法,這是非常非常重要的東西,有了核心基礎的鋪墊,我們才能後續的學習文檔對象模型(DOM)和瀏覽器對象模型(BOM).文檔對象模型(DOM)就是操作一些網頁上的一些標籤元素,來實現網頁上的動態效果。而瀏覽器對象模型(BOM)就是像比如說滾動的行為,點擊回到頂部,還有刷新,前進,後退等操作。這些特性就是我們需要了解的內容,在你後續進行詳細學習的時候,就帶着這些特性疑問去學習,會有事半功倍的效果。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

Asp.Net Mvc基於Fleck開發的多人網頁版即時聊天室_網頁設計公司

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

透過資料庫的網站架設建置,建立公司的形象或購物系統,並提供最人性化的使用介面,讓使用者能即時接收到相關的資訊

一、項目的核心說明

1、Fleck這個是實現websocket一個比較簡單第三方組件,它不需要安裝額外的容器。本身也就幾個接口可供調用。

2、項目是基於.net framework 4.7.2 ,在vs2019上開發的,沒試過在低版本上運行。但是代碼上沒怎麼用到新特性,所以估計是可以被低版本使用的。

3、這個項目並不是真實項目,也就是玩一下,但是對熟悉Fleck或者了解及時聊天,應該有一丁點的啟發作用。

 

二、Fleck 的簡要說明(https://github.com/statianzo/Fleck)

1、最簡單、最常用的調用方法:(ws://172.10.3.4:8111改成您的服務器本地IP和端口)

//控制台代碼
var server = new WebSocketServer("ws://172.10.3.4:8111");
server.Start(socket =>
{
  socket.OnOpen = () => Console.WriteLine("產生連接處理");
  socket.OnClose = () => Console.WriteLine("連接斷開處理");
  socket.OnMessage = (message) => {
  //1、此方法用於接收客戶端發送來的消息
  //2、可以做一些自己的操作,例如存入數據庫
  //3、為了響應客戶端,一般會使用下面的send函數,返迴響應結果。
  socket.Send(message);
  }
});

2、Fleck本身只負責幫你單線聯繫。也就是客戶端A和服務器建立連接后,會產生一個IWebSocketConnection,也就是上面代碼中socket變量的類型,它包含了接收方法、發送方法,但是都僅限於單一連接內。至於客戶端A想發送消息給客戶端B、C、D亦或者想群發,不好意思Fleck本身不Care。。。當然了那並不是這個功能就不能實現了,只是要開發者自己去把每一個IWebSocketConnection存儲起來,並管理他們的生存周期,通過自己的代碼去實現客戶端A給B發信息或者群發。

3、Fleck不需要額外的容器或進程來運行,它隨着IIS網站運行,也就是在w3wp.exe。至於它是怎麼運行的,目前我還沒有去看源碼,後期有時間再瞧瞧。

 

三、聊天室源碼位置

1、GitHub:https://github.com/DisSunRestart2020/DisSunChat

2、碼雲:https://gitee.com/dissun/DisSunChat

3、微信掃碼演示(網絡時好時壞)

        

 

四、核心代碼說明。

1、IWebSocketHelper接口。因為一開始,我是想用多個插件來實現聊天室,所以想用一個接口來做行為封裝。結果完成了Fleck之後,發現其他的操作模式都不太相同,很難封裝就放棄了,但是保留這個接口,是為了體現擴展性。

    /// <summary>
    /// 所有調用WebSocket的幫助類必須遵從的協議
    /// </summary>
    public interface IWebSocketHelper
    {
        /// <summary>
        /// websocket連通后觸發事件
        /// </summary>
        event SwitchEventHandler WsOpenEventHandler;
        /// <summary>
        /// websocket連接關閉后觸發事件
        /// </summary>
        event SwitchEventHandler WsCloseEventHandler;
        /// <summary>
        /// websocket監聽到消息后觸發事件
        /// </summary>
        event ListenEventHandler WsListenEventHandler;
        /// <summary>
        /// websocket響應處理事件
        /// </summary>
        event ResponseTextEventHandler WsResponseTextEventHandler;
        /// <summary>
        /// 聊天室在線人數
        /// </summary>
        int PlayerCount
        {
            get;
            set;
        }
        /// <summary>
        /// websocket初始化
        /// </summary>
        void WebSocketInit();

        /// <summary>
        /// 向全員發送信息
        /// </summary>
        /// <param name="wsocketMsg"></param>
        void SendMessageToAll(WebSocketMessage wsocketMsg);
        /// <summary>
        /// 向自己發送信息
        /// </summary>
        /// <param name="wsocketMsg"></param>
        void SendMessageToMe(WebSocketMessage wsocketMsg);
    }

接口中用到了4個委託事件,這裏稍微簡單的複習一下委託和事件。

①委託從使用形式來說,是指我們可以把一個函數作為參數進行傳遞,例如我們在解一道數學題,條件和要求都是一樣的,但是求解的過程可以多種多樣,通過委託就可以在不改變主體程序的同時,把不同的求解過程,封裝到不同的函數中,然後把函數作為參數傳入主體程序。

②委託從模式的角度來說,是在實現觀察者模式。訂閱者\觀察者告訴發布者\主題,如果發生了某一特定事情該怎麼處理,“怎麼處理”的過程就是委託方法的內容

※想知道最厲害的網頁設計公司嚨底家"!

RWD(響應式網頁設計)是透過瀏覽器的解析度來判斷要給使用者看到的樣貌

③事件其實就是一個委託,都說事件是一個特殊委託,特殊在哪裡,特殊在它對委託增加了約束,讓你不能毫無顧忌的使用委託,這是為了保證封裝性。

④上面的4個事件,其實我可以直接換成4個委託屬性,對程序運行不會有太大影響。但是為什麼要使用事件,還是第三點的封裝性。事件本來的用意,是達到特定條件后讓發布者自己來觸發委託方法的執行,但是如果使用委託屬性,訂閱者本身就可以進行調用,封裝性就很差。

⑤上面的4個事件,分別是訂閱者告訴Fleck中心,新長連接接通怎麼辦、長連接斷開怎麼辦、客戶端發來消息怎麼辦、要返回客戶端的消息怎麼轉換。

 

2、Fleck類的實現。Fleck實現了IWebSocketHelper接口,這是這個項目的核心代碼。

  1 public class FleckHelper:IWebSocketHelper
  2     {
  3         /// <summary>
  4         /// websocket連通后觸發事件
  5         /// </summary>
  6         public event SwitchEventHandler WsOpenEventHandler;
  7         /// <summary>
  8         /// websocket連接關閉后觸發事件
  9         /// </summary>
 10         public event SwitchEventHandler WsCloseEventHandler;
 11         /// <summary>
 12         /// websocket監聽到消息后觸發事件
 13         /// </summary>
 14         public event ListenEventHandler WsListenEventHandler;
 15         /// <summary>
 16         /// websocket反饋客戶端的文本處理事件
 17         /// </summary>
 18         public event ResponseTextEventHandler WsResponseTextEventHandler;       
 19         /// <summary>
 20         /// 聊天室在線人數 
 21         /// </summary>
 22         public int PlayerCount
 23         {
 24             get;
 25             set;
 26         }
 27         /// <summary>
 28         /// websocket已經連通的連接集合
 29         /// </summary>
 30         private Hashtable socketListHs = new Hashtable();
 31       
 32         public void WebSocketInit()
 33         {
 34        
 35             string websocketPath = Utils.GetConfig("websocketPath");
 36             WebSocketServer wsServer = new WebSocketServer(websocketPath);            
 37 
 38             wsServer.Start(socket =>
 39             {         
 40                 //以下的設置,每當一個新連接進來,都會生效。
 41                 socket.OnOpen = () => {
 42                     //自定義處理
 43                     
 44                     if (this.WsOpenEventHandler != null)
 45                     {
 46                         WebsocketEventArgs args = new WebsocketEventArgs();
 47                         this.WsOpenEventHandler(this, args);
 48                     }
 49                 };
 50 
 51                 socket.OnClose = () => {
 52                     //從連接集合中移除                    
 53                     for (int i= socketListHs.Count-1; i>=0;i--)
 54                     {
 55                         if (socketListHs[i] == null)
 56                         {                           
 57                             socketListHs.Remove(i);
 58                         }                        
 59                     }
 60                     PlayerCount = socketListHs.Count;
 61                     //自定義處理
 62                     if (this.WsCloseEventHandler != null)
 63                     {
 64                         WebsocketEventArgs args = new WebsocketEventArgs();
 65                         this.WsCloseEventHandler(this, args);
 66                     }
 67                 };
 68 
 69                 socket.OnMessage = (message) =>
 70                 {
 71                     ClientData cData = Utils.JsonToObject<ClientData>(message);
 72                     WebSocketMessage wsocketMsg = new WebSocketMessage(socket.ConnectionInfo.ClientIpAddress, socket.ConnectionInfo.ClientPort.ToString(), socket.ConnectionInfo.Id.ToString("N"), cData);
 73 
 74                     if (Convert.ToBoolean(cData.IsConnSign))
 75                     {
 76                         //收到用戶上線信息,更新socket列表
 77                         if (!socketListHs.ContainsKey(cData.IdentityMd5))
 78                         {
 79                             socketListHs.Add(cData.IdentityMd5, socket);
 80                         }
 81                         else
 82                         {
 83                             socketListHs[cData.IdentityMd5] = socket;
 84                         }
 85                         PlayerCount = socketListHs.Count;
 86                     }
 87 
 88                     if (this.WsListenEventHandler != null)
 89                     {
 90                         WebsocketEventArgs args = new WebsocketEventArgs();
 91                         args.WebSocketMessage = wsocketMsg;
 92                         this.WsListenEventHandler(this, args);
 93                     }
 94                 };
 95 
 96             });
 97         }   
 98 
 99         /// <summary>
100         /// 向全員發送信息
101         /// </summary>
102         /// <param name="wsocketMsg"></param>
103         public void SendMessageToAll(WebSocketMessage wsocketMsg)
104         {           
105             string resultData = "";
106             if (this.WsResponseTextEventHandler != null)
107             {
108                 WebsocketEventArgs args = new WebsocketEventArgs();
109                 args.WebSocketMessage = wsocketMsg;
110                 this.WsResponseTextEventHandler(this, args);
111                 resultData = args.ResultDataMsg;
112             }
113 
114             if (!string.IsNullOrWhiteSpace(resultData))
115             {
116                 foreach (DictionaryEntry dey in socketListHs)
117                 {
118                     IWebSocketConnection subConn = (IWebSocketConnection)dey.Value;
119                     subConn.Send(resultData);
120                 }          
121             }
122         }      
123         
124     }

①代碼中IdentityMd5是我自己通過各種本地信息算出來的身份標識,因為在在微信上運行cookie不穩定,不能在本地存儲任何信息,只能通過算法把環境信息合成一個唯一值。

②前面說過,Fleck只負責單線聯繫,每一個連接都是一個IWebSocketConnection,所以我需要把IdentityMd5和IWebSocketConnection存起來,方便索引調用。

③socket.OnMessage中,socketListHs是存儲IWebSocketConnection的集合,每次有消息發來,如果判斷是新的IdentityMd5就會存起來。

④socket.OnClose 中,如果有連接斷開了,IWebSocketConnection就會為null,所以遍歷集合,然後把值為null剔除就能保持socketListHs集合的有效性

⑤SendMessageToAll函數用於群發消息,遍歷集合中所有的對象,調用每個IWebSocketConnection.Send(),就可以把消息發送出去。如果想從客戶端A發到客戶端B,也得利用IdentityMd5來做文章,本項目由於是聊天室並不需要這個功能,所以就省略了。

⑥socket.OnOpen、socket.OnClose、socket.OnMessage都是Fleck自行觸發的事件,前面一開始我們介紹過了,例如OnOpen中,如果我們需要當建立新連接時記錄日誌,我們就可以對WsOpenEventHandler賦值(本項目在Global.asax的Application_Start中用lambda賦值),如下:

        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            RouteConfig.RegisterRoutes(RouteTable.Routes);                   
            App_Start.FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            
         ChatService chatService = new ChatService();
            try
            {

                IWebSocketHelper helper = new FleckHelper();//用FleckHelper來實例化IWebSocketHelper 接口。
                helper.WebSocketInit();
                  
                helper.WsOpenEventHandler +=(sender, args)=>{
                    Utils.SaveLog("WebSocket已經開啟2");
                };

                helper.WsCloseEventHandler += (sender, args) => {
                    Utils.SaveLog("WebSocket已經關閉2");
                };

                helper.WsListenEventHandler += (sender, args) => {
                    Utils.SaveLog("WebSocket監聽到了消息2");
                    if (!Convert.ToBoolean(args.WebSocketMessage.ClientData.IsConnSign))
                    {
                        chatService.CreateChatInfo(args.WebSocketMessage);
                        args.WebSocketMessage.ClientData.SMsg = Utils.ReplaceIllegalWord(args.WebSocketMessage.ClientData.SMsg);
                    }
                    else
                    {
                        string clientName = args.WebSocketMessage.CIp + ":" + args.WebSocketMessage.CPort;
                        string traceInfo = string.Format("{0} 加入聊天室(共{1}人在線)", clientName, helper.PlayerCount);
                        args.WebSocketMessage.ClientData.SMsg = traceInfo;
                    }
                    //給所有人轉發消息
                    helper.SendMessageToAll(args.WebSocketMessage);
                };

                helper.WsResponseTextEventHandler += (sender, args) => {
                    string jsonStr = Utils.ObjectToJsonStr(args.WebSocketMessage);
                    args.ResultDataMsg = jsonStr;
                };

               
            }
            catch(Exception ex)
            {
                Utils.SaveLog("發現了錯誤:" + ex.Message);
            }
        }

 3、在html端連接Fleck,只須一個一個WebSocketJs.js文件。

var socket;
var websocketInit = function (wsPath) {
    if (typeof (WebSocket) === "undefined") {
        socket = null;
        console.log("瀏覽器不支持websocket");
    } else {
        // 實例化socket
        socket = new WebSocket(wsPath);
        // 監聽socket連接
        socket.onopen = wsOnOpen;
        //監聽socket關閉
        socket.onclose = wsOnClose;
        // 監聽socket錯誤信息
        socket.onerror = wsOnError;
        // 監聽socket消息
        socket.onmessage = wsOnMessage;
    }
}


var wsOnOpen = function () {
    console.log("已經成功連接");
    var sMsg = "";

    var sendMsg = "{\"IdentityMd5\":\"" + identityMd5 + "\",\"SMsg\":\"\",\"ImgIndex\":\"" + imgIndex + "\",\"IsConnSign\":\"true\"}";
    socket.send(sendMsg);
}

var wsOnClose = function () {
    console.log("已經關閉連接");
}


var wsOnError = function (evt) {
    console.log("異常:" + evt);
}

var wsSend = function (sMsg) {     
    if (socket == null || sMsg == "") return false;
    console.log("消息成功發出");
    socket.send(sMsg);
}
 

①WebSocket是瀏覽器內置的一個類型,現在一般的瀏覽器都支持,但是還是typeof (WebSocket)來做一下判斷。

②然後在啟動時加載即可(ws://14.215.177.1:8111改成您的服務器公網IP和端口)。

$(function () {
 
    websocketInit("ws://14.215.177.1:8111");    
  
});

 

********** End *****************

上面這些也只是部分代碼,需要可運行代碼,請去github下載源碼。

疫情當前,公司發展不順,舊項目停擺,新項目需求不明。像當前這樣的企業破產潮,我是比較緊張的,畢竟不是小年輕,技術又不是特別過硬,不上不下的焦慮的很。但是也明白,行動起來,每天讓自己靠近目標一點點,是解決焦慮的不二法門。

能寫一些博客,就寫一些博客吧,我也不確定寫這個對我自己有什麼幫助,對讀者都多大的幫助,就當備忘錄吧。

當一個會折騰的“前浪”…

 

歡迎建設性的批評和指導意見。

本站聲明:網站內容來源於博客園,如有侵權,請聯繫我們,我們將及時處理

網頁設計一頭霧水該從何著手呢? 台北網頁設計公司幫您輕鬆架站!

當全世界的人們隨著網路時代而改變向上時您還停留在『網站美醜不重要』的舊有思維嗎?機會是留給努力改變現況的人們,別再浪費一分一秒可以接觸商機的寶貴時間!

臘月_網頁設計公司

網頁設計公司推薦不同的風格,搶佔消費者視覺第一線

透過選單樣式的調整、圖片的縮放比例、文字的放大及段落的排版對應來給使用者最佳的瀏覽體驗,所以不用擔心有手機版網站兩個後台的問題,而視覺效果也是透過我們前端設計師優秀的空間比例設計,不會因為畫面變大變小而影響到整體視覺的美感。

臘月一到,天地就顯得空曠起來。雪要是在晚上降臨,規模又不小,就能給人們十足的驚喜。夜裡,那幾聲竹折的聲音,已經把夢的暖意加重了。清晨,打開門,偌大的雪光馬上席捲了你,你的思緒飛揚在群山和原野。無論小雪和大雪,臘月的雪總是喜氣的,所以都叫做“瑞雪”,表達着一種憧憬的歡喜。臘月是農曆的最後一個月,既然是“最後”,就必須要有一個了結,如此,一場紛紛揚揚的大雪,不妨看作是一場對季節盛大的祭掃,掃掉塵垢,掃掉陰霾,掃掉煩憂。

其實,從正月開始,時令都是搖擺和躁動的,那些紅紅綠綠,那些喧鬧奔放,你來我往地熱鬧着。而時間抵達臘月,抵達大雪以後,就是抵達了冷峻和深寒,茫茫原野,除了點染着幾抹幾點樹木、斷崖、牆壁、瘦瘦的水,皆是雪的天地。

在臘月,花信風也吹着。瑞香、蘭草、水仙、山茶……這些花骨朵,要麼雅緻,要麼野性,叫臘月有了些許的浪漫。尤其是梅花,因為文人騷客的渲染和寄託,似乎把臘月的風姿都佔盡了,其實,對於尋常百姓家,倒是特別惦記着臘梅的。臘梅比梅花來得早些,屬於灌木一類。在牆角,在籬邊,在園子那頭,不管寒冷天氣的意見如何,臘梅自顧自就動了靈氣,於光溜溜的枝頭笑出聲來。開始是一絲絲的淺笑,後來一棵樹、兩棵樹都笑開了去。臘梅的出身在低處、在偏僻、在旮旯,她無所謂,那些花瓣即使被雪裹着、被冰割着,也總是金燦燦地呼吸着,幽幽的清香不動聲色、不卑不亢、不絕如縷。臘梅,不想風光,也不甘沉淪寂寞,真是一個頑強的精靈。“疏林凍水熬寒月,唯見一株在喚春”“枝橫碧玉天然瘦,戀破黃金分外香”,這樣的詩句寫臘梅,也算貼切,但又覺得有點矯情了:臘梅的品性,本比這更超然。

想來想去,臘月的許多生機,也是聚在菜園子里的。“小寒大寒,凍作一團”,天再冷,園子凍不死,那一園子的青蔥總是鮮活着。“冰凍響,蘿蔔長”,蘿蔔堅決和嚴寒叫板,把自己往高處舉、往土裡深掘,最後,身板被錘鍊得結結實實,而甜嫩脆的品質,更叫我們充滿了期待——蘿蔔燉羊肉,饞人喲。

菠菜、矮腳白、包菜、黃心菜、芹菜、芫荽、胡蘿蔔、大蒜、冬莧菜、香蔥、韭菜……也都在勇敢地和季節抗衡,這些尋常的蔬菜,其實是臘月里蟄伏的許多小小的幸福,不驚天動地,卻把每一個日子點綴得不凝滯、不呆板。當然,它們能夠在臘月里天天向上,長得滋潤,還是因為農人們日常細心呵護照料的結果。每一戶農家,對菜園子的拾掇,其實和對待四季里的每一項勞作是一樣的,都含了實實在在的念想,手心裏攥着綿綿的勁道。

※想知道購買電動車哪裡補助最多?台中電動車補助資訊懶人包彙整

節能減碳愛地球是景泰電動車的理念,是創立景泰電動車行的初衷,滿意態度更是服務客戶的最高品質,我們的成長來自於你的推薦。

年年歲歲,村裡的柴煙延續着平常的日子,到了臘月,柴煙的身姿和內涵就要豐富很多,因為一個最大的節日在等着:年。

“臘七臘八,腌魚腌鴨。”臘月一項要緊事,就是準備吃貨。月初,魚鴨就差不多腌透了,晴好的日子,每家每戶的屋檐下,油汪汪晾着那一串一串的,受用着陽光溫和的咂摸。整整一個月,農家的灶間難得消停,磨豆腐、蒸米酒、做糍粑,瀰漫的香味香氣,抵消了寒冷侵襲,人心,被烘得暖暖的。

這當口,女人們除了準備關於吃的一切,還要掃揚塵、納鞋底、購年貨、照顧母雞抱窩。農事也沒停,男人們忙着積肥、造肥、修倉、修理農具,等等。“人勤春早”,大伙兒明白,好日子都是頂着風霜雨雪干出來的,臘月,每一個人都在盡最大的本事,把凜凜的冬天過成一個熱烈的期盼。

大年三十晚,臘月只剩下很短的時光。所有的念想都沉澱下來:平安是福,團圓是福,一家樂呵是福。這個晚上,過得快,也過得慢,要祭祖,要放開門炮仗,要守歲,要給晚輩壓歲錢,當然,高潮就是年夜飯了。

不管年景咋樣,也要把年夜飯弄得歡實起來:要湊成雙數的碗,至少要有八個菜,寓意發達;肘子是有的,下了許多功夫,蒸成一大碗,滑嫩,溜光,如琥珀,香氣逼人;魚是有的,紅燒為主,紅辣椒把魚身子蓋滿了,看着就想出汗;雞肯定也是有的,大都用燉的做法,湯黃亮亮的,點綴着桂圓、荔枝、紅枸杞。馬上,一家人圍成一桌,吃上個把小時,吃得熱氣騰騰、熱汗淋漓,吃得滿面紅光光、油光光,滿屋子儘是快活,儘是喜氣。

“野興疏,冬寥落,爐前沉醉酒一壺。”是啊,臘月已經來了,春天也會捂不住的,不如,今夜,在夢裡,潛回老家的山村去,守着一盆炭火,陪着父母,聽他們嘮叨你的小名,嘮叨整整一個晚上……

本站聲明:網站內容來http://www.societynews.cn/html/wh/fq/,如有侵權,請聯繫我們,我們將及時處理

南投搬家公司費用,距離,噸數怎麼算?達人教你簡易估價知識!

搬家費用:依消費者運送距離、搬運樓層、有無電梯、步行距離、特殊地形、超重物品等計價因素後,評估每車次單

小米11 正式發表:首款搭載高通 S888 5G 旗艦手機降臨!售價約 17,217 元起_網頁設計公司

※綠能、環保無空污,成為電動車最新代名詞,目前市場使用率逐漸普及化

台中景泰電動車行只是一個單純的理由,將來台灣的環境,出門可以自由放心的深呼吸,讓空氣回歸自然的乾淨,減少污染,留給我們下一代有好品質無空污的優質環境

今(28)日晚間,小米搶在 2020 年的倒數幾天發表了「小米11」新機,也是全球首款搭載高通最新的 Snapdragon 888 行動平台的 5G 旗艦手機。除了強悍的性能,這次包括螢幕、玻璃、音效都有明顯升級,相機配置 1.08 億像素三鏡頭主相機維持旗艦水準。至於售價則是比起預估便宜許多,小米11 起售價僅約 17,217 元起。

小米11 正式發表:首款搭載高通 S888 5G 旗艦手機降臨!售價約 17,217 元起

在迎接 2021 年之前,小米搶在 2020 年再次發表新一代的小米旗艦新機「小米11」,也是之前就已知道是首款搭載高通 S888 新旗艦處理器的機種。雖然小米11 的外型在之前就已經提早被洩露,不過實際發表的機身尺厚度和重量還是比預期來得更吸引人。小米11 在機身厚度僅 8.06mm(比起前一代薄了 0.9mm)、機身重量僅 196g(比起前一代減輕 12g):

效能

小米11 為全球首款搭載 Qualcomm Snapdragon 888 5G 行動平台、配備最高 12GB LPDDR5 RAM、256GB ROM:

小米公布實測安兔兔跑分達到 745,942 分:

Geekbench 效能實測單核跑分 1135 分、多核跑分 3818 分:

Wi-Fi 連線方面,小米11 採用全新的 WiFi6 增強版,在網速比起之前 WiFi6 標準版快 2.1 倍、最大下載速度高達 3.5Gbps:

螢幕

螢幕方面,小米11 配備 6.81 吋 2K(3200×1440 WQHD)AMOLED 四曲面柔性螢幕,螢幕支持最高 120Hz 螢幕更新率、480Hz 觸控採樣率, 1500nit 峰值亮度、480Hz  觸控採樣率、5,000,000:1 對比度,螢幕也擁有 100% P3 色域和 HDR10+ 認證。螢幕也支持自動亮度調整,小米11 前後配置雙感光感應器,可支持 8192 級亮度調節。

螢幕採用 E4 發光材料,也獲得 DisplayMate 的 A+ 頂級評價:

此外,小米11 螢幕保護的玻璃則採用康寧最新大猩猩玻璃 Gorilla Glass Victus 保護,抗摔性相較前代提升 1.5倍、耐刮性能提升 2 倍。

相機

相機方面,小米11 配備 1.08 億像素三鏡頭主相機,分別為 1.08 億像素(1 / 1.33″超大感光元件)、1300 萬像素 123° 超廣角鏡頭、 500 萬像素 50mm 微距長焦鏡頭,前置鏡頭則配備 2000 萬像素自拍相機。

1.08 億像素的 1/1.33″ 超大感光元件尺寸為 iPhone 12 Pro Max 的兩倍:

也支援 OIS 四軸光學防手震:

鏡頭採用 7P 光學鏡片:

有著 Snapdragon 888 強大的性能,小米11 在拍攝 108MP 的相片速度相較過去提升 30% 的表現:

除了支持最高 8K 30fps 錄影外,在影片錄製也加入超級夜景模式:

※自行創業缺乏曝光? 網頁設計幫您第一時間規劃公司的形象門面

網站的第一印象網頁設計,決定了客戶是否繼續瀏覽的意願。台北網動廣告製作的RWD網頁設計,採用精簡與質感的CSS語法,提升企業的專業形象與簡約舒適的瀏覽體驗,讓瀏覽者第一眼就愛上它。

電量

電量方面,小米11 內建等效 4600mAh 大電池,支持 55W 有線閃充、50W 無線閃充以及10W 反向無線充電, 55W 有線閃充可在 45 分鐘充滿 100% 電量、50W 無線閃充可在 53 分鐘充滿 100% 電量。

音效&其他硬玉

在這次小米 找來了 harman/kardon 金耳朵團隊為小米11 的立體聲雙揚聲器調校音效,同時音效方面也通過 Hi-Res 認證並支持藍牙音效共享,可同時與兩組藍牙耳機連接使用:

震動方面小米11 配備超大橫向線性馬達,震動量更大、啟停時間更短:

小米11 配備超薄螢幕下指紋感應器,也首次支持指紋檢測心率功能,只需在螢幕指紋感應區即可檢測心率:

配色

小米11 在機身背蓋分為「磨砂玻璃」與「素皮(環保皮革)」兩種材質處理:

「磨砂玻璃版」提供黑色、白色、藍色三種顏色選擇:

另外在「素皮(環保皮革)」版則推出卡其色、煙紫色兩種顏色選擇:

另外,小米11 也推出限量的雷軍簽名版:

售價

小米為響應 Apple 的環保政策,今日也終於在小米11 取消附贈充電器甚至連同 Type-C 傳輸線都取消附贈。然而,小米日前在微博預告這項消息後也引起眾人討論,雷軍表示原先計劃以套裝方式讓消費者「加購」 55W 小米 GaN 充電器,但最終決定分為無充電器、傳輸線的「標準版」,以及包含 55W 小米 GaN 充電器的「套裝版」,兩款版本以相同的建議售價進行販售,等同購買套裝版的消費者免費贈送 55W 小米 GaN 充電器套裝。而雷軍也呼籲已經有快充充電器的消費者,盡量選擇「標準版」來響應環保政策。

小米11 共推出三種規格配置, 8GB+128GB 售價人民幣 3,999 元(約合新台幣 17,217 元)、8GB+256GB 售價人民幣 4,299 元(約合新台幣 18,509 元)、12GB+256GB 售價人民幣 4,699 元(約合新台幣 20,231 元)。

圖片/消息來源:小米手機(微博)|小米(中國)

延伸閱讀:
小米路由器AX6000 正式發表:首款 Wi-Fi 6E 標準的小米高階路由器,售價僅約 2,580 元

您也許會喜歡:

【推爆】終身$0月租 打電話只要1元/分

立達合法徵信社-讓您安心的選擇

※如何讓商品強力曝光呢? 網頁設計公司幫您建置最吸引人的網站,提高曝光率!

以設計的實用美學觀點,規劃出舒適、美觀的視覺畫面,有效提昇使用者的心理期待,營造出輕鬆、愉悅的網站瀏覽體驗。