01.前端之HTML

来源:https://www.cnblogs.com/changxin7/archive/2019/09/09/11492304.html
-Advertisement-
Play Games

HTML介紹 Web服務本質 瀏覽器發請求 HTTP協議 服務端接收請求 服務端返迴響應 服務端把HTML文件內容發給瀏覽器 瀏覽器渲染頁面 HTML是什麼? 超文本標記語言(Hypertext Markup Language, HTML)是一種用於創建網頁的標記語言。 本質上是瀏覽器可識別的規則, ...


HTML介紹

Web服務本質

import socket


sk = socket.socket()

sk.bind(("127.0.0.1", 8080))
sk.listen(5)


while True:
    conn, addr = sk.accept()
    data = conn.recv(8096)
    conn.send(b"HTTP/1.1 200 OK\r\n\r\n")
    conn.send(b"<h1>Hello world!</h1>")
    conn.close()

  瀏覽器發請求 --> HTTP協議 --> 服務端接收請求 --> 服務端返迴響應 --> 服務端把HTML文件內容發給瀏覽器 --> 瀏覽器渲染頁面

HTML是什麼?

  • 超文本標記語言(Hypertext Markup Language, HTML)是一種用於創建網頁的標記語言。
  • 本質上是瀏覽器可識別的規則,我們按照規則寫網頁,瀏覽器根據規則渲染我們的網頁。對於不同的瀏覽器,對同一個標簽可能會有不同的解釋。(相容性問題)
  • 網頁文件的擴展名:.html或.htm

HTML不是什麼?

    HTML是一種標記語言(markup language),它不是一種編程語言。

    HTML使用標簽來描述網頁。不像python編程語言一樣,有邏輯什麼的,這個標記語言是沒有邏輯的

img

HTML文檔結構

    最基本的HTML文檔:

<!DOCTYPE html> 
<html lang="zh-CN">   #這個lang表示語言,zh-CN是中文的意思,就是說,你整個文檔的內容以中文為主,如果以英文為主,就寫成lang='en'
<head> 
  <meta charset="UTF-8">
  <title>css樣式優先順序</title>
</head>
<body> 

</body>
</html>
  1. <!DOCTYPE html>聲明為HTML5文檔。

  2. 是文檔的開始標記和結束的標記。是HTML頁面的根元素,在它們之間是文檔的頭部(head)和主體(body)。

  3. 定義了HTML文檔的開頭部分。它們之間的內容不會在瀏覽器的文檔視窗顯示。包含了文檔的元(meta)數據,配置信息等,是給瀏覽器看的,你看到的是在body標簽裡面寫的。

  4. 定義了網頁標題,在瀏覽器標題欄顯示。(修改一下title中的內容,然後看一下瀏覽器,你就會發現title是什麼了)

  5. 之間的文本是可見的網頁主體內容。

    註意:對於中文網頁需要使用 聲明編碼,否則會出現亂碼。有些瀏覽器會設置 GBK 為預設編碼,則你需要設置為

      pycharm中創建一個html文件,你就會發現,整個結構都給你直接生成好了,因為不管什麼瀏覽器,這個文檔結構都是這樣的。

      通過pycharm可以設置整個文檔:

      img

    html文件可以在pycharm中的img這個位置就能打開,你會發現地址欄是種file:///這也是一個協議,瀏覽器打開自己本地文件的協議。

HTML標簽格式,嚴格封閉

    HTML標簽是由尖括弧包圍的關鍵字,如<html>, <div>等
    HTML標簽通常是成對出現的,比如:<div>和</div>,第一個標簽是開始,第二個標簽是結束。結束標簽會有斜線。
    也有一部分標簽是單獨呈現的,比如:<br/>、<hr/>、<img src="1.jpg" />等。
    標簽裡面可以有若幹屬性,也可以不帶屬性。

  標簽的語法:

    <標簽名 屬性1=“屬性值1” 屬性2=“屬性值2”……>內容部分</標簽名> 
    <標簽名 屬性1=“屬性值1” 屬性2=“屬性值2”…… />

          有些屬性是沒有特殊的效果的,而有些屬性是有效果的,比如 <h1 s='name'>xxx<h1/>,其中s='name'是沒什麼效果的,而<a src='http://www.baidu.com'>xxx</a>,你會看到一些效果,可以點擊,有下劃線,有顏色。

  幾個很重要的屬性:

    id:定義標簽的唯一ID,HTML文檔樹中唯一,將來頁面上的標簽有很多,例如:來幾個a標簽,然後怎麼區分這些標簽呢,可以銅鼓<a id='a1'>xxx</a>,id不能重覆,將來我們想找這個標簽的時候,可以通過這個id的值來找到這個標簽 
    class:為html元素定義一個或多個類名(classname)(CSS樣式類名) #將css的是再說
    style:規定元素的行內樣式(CSS樣式) #簡單來個示例:<h1 style="color:red;">xx</h1>你會發現變成紅色了,其他的講css的時候再講

HTML註釋

<!--註釋內容-->  #找到一行內容ctrl+/就能註釋,註釋的內容不會在網頁上顯示出來

<!DOCTYPE> 標簽

    <!DOCTYPE> 聲明必須是 HTML 文檔的第一行,位於 標簽之前。

    <!DOCTYPE> 聲明不是 HTML 標簽;它是指示 web 瀏覽器關於頁面使用哪個 HTML 版本進行編寫的指令。

HTML常用標簽

head內常用標簽

標簽 意義
定義網頁標題
定義內部樣式表
定義JS代碼或引入外部JS文件
引入外部樣式表文件
定義網頁原信息

Meta標簽

  Meta標簽介紹: #作為瞭解內容

  • 元素可提供有關頁面的元信息(meta-information),針對搜索引擎和更新頻度的描述和關鍵詞。

  • 標簽位於文檔的頭部,不包含任何內容。

  • 提供的信息是用戶不可見的。

  meta標簽的組成:meta標簽共有兩個屬性,它們分別是http-equiv屬性和name 屬性,不同的屬性又有不同的參數值,這些不同的參數值就實現了不同的網頁功能。

  1.http-equiv屬性:相當於http的文件頭作用,它可以向瀏覽器傳回一些有用的信息,以幫助正確地顯示網頁內容,與之對應的屬性值為content,content中的內容其實就是各個參數的變數值。

<!--2秒後跳轉到對應的網址,註意引號-->
<meta http-equiv="refresh" content="2;URL=https://www.oldboyedu.com"> #如果把URL和後面的內容去掉,就是2秒鐘刷新一次,這些內容瞭解一下就行
<!--指定文檔的編碼類型--> 
<meta http-equiv="content-Type" charset=UTF8">
<!--告訴IE以最高級模式渲染文檔-->
<meta http-equiv="x-ua-compatible" content="IE=edge"> #edge是微軟的一個全新的瀏覽器,其實就是告訴IE瀏覽器,你按照最高標準來渲染我的頁面,瞭解一下就可以啦

  2.name屬性: 主要用於描述網頁,與之對應的屬性值為content,content中的內容主要是便於搜索引擎機器人查找信息和分類信息用的。

<meta name="keywords" content="meta總結,html meta,meta屬性,meta跳轉"> #關鍵字,也就是別人是可以通過這些關鍵字搜索到我的這個文章的,搜索引擎就是能夠這個content內容來幫別人搜索到你的這個文檔的#SEO就是做這個的,就是怎麼讓你們公司的網站在別人搜索的時候能夠靠前顯示,不算那個花錢的,百度是充值的,你沖個20w,別人可能一天就給你點擊完了,特別的貴
<meta name="description" content="xxxxxpythonxxx學習">  #是對這個文檔的描述,在百度一些內容的頁面上,f12打開看看

     下麵這個紅框裡面就是描述信息:

    img

  

  瀏覽器內核:

    瀏覽器 -- 內核

    IE -- trident

    chrome --- blink

​ 火狐 --- gecko

    Safari --- webkit

  PS:「瀏覽器內核」也就是瀏覽器所採用的「渲染引擎」,渲染引擎決定了瀏覽器如何顯示網頁的內容以及頁面的格式信息。渲染引擎是相容性問題出現的根本原因。

body內常用標簽(HTML中的重點)

基本標簽(塊級標簽和內聯標簽)

不加標簽的純文字也是可以在body中寫的<b>加粗</b><i>斜體</i><u>下劃線</u><s>刪除</s><p>段落標簽</p> #獨占一個段落<h1>標題1</h1><h2>標題2</h2><h3>標題3</h3><h4>標題4</h4><h5>標題5</h5><h6>標題6</h6><!--換行--><br><!--水平線--><hr> #就是單獨個一個水平線每次加上一些內容,別忘了刷新一下頁面,才能看到新添加的效果或者內容,其實上面這些標簽很少用

特殊字元

(還有好多其他的,可以直接百度搜HTML特殊符號對照表)

內容 對應代碼
空格(html中預設是不顯示空格的,也就是說通過空格鍵加了空格也沒有多個空格的效果,加多少個都是顯示一個空格效果,需要這些特殊字元才能顯示出空格效果)  
> >
< <
& &
¥ ¥
版權標識(寫公司網站的時候會用到) ©
註冊(一個圓圈裡面有個R) ®

div標簽和span標簽(常用)

    這兩個標簽是沒有特別的樣式的。xxxx,但是這是兩個標簽最大的特點,可以通過CSS來控制,就像咱們畫畫一樣,在一個白紙上畫好,還是在一個報紙上畫好啊,對不對。打開個網頁通過f12看一下,就發現多數都是div和span。

    div標簽用來定義一個塊級元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。
    span標簽用來定義內聯(行內)元素,並無實際的意義。主要通過CSS樣式為其賦予不同的表現。

    塊級元素與行內元素的區別:
    所謂塊元素,是以另起一行開始渲染的元素,行內元素則不需另起一行。如果單獨在網頁中插入這兩個元素,不會對頁面產生任何的影響。
    這兩個元素是專門為定義CSS樣式而生的。

    剛纔學的標簽:

      塊級標簽:p、h1--h6、hr、div

      內聯標簽:b、i、u、s

  註意:

    關於標簽嵌套:通常塊級元素可以包含內聯元素或某些塊級元素,但內聯元素不能包含塊級元素,它只能包含其它內聯元素。div是可以包含div的

    p標簽比較特殊,不能包含塊級標簽,p標簽也不能包含p標簽。可以試一下p標簽套p標簽,f12你會發現三個p標簽

img標簽

<img src="圖片的路徑" alt="圖片未載入成功時的提示" title="滑鼠懸浮時提示信息" width="寬" height="高(寬高兩個屬性只用一個會自動等比縮放)">

    src的路徑又分為兩種:網上的一個圖片路徑和本地的一個相對圖片路徑

    img

a標簽

    超鏈接標簽

    所謂的超鏈接是指從一個網頁指向一個目標的連接關係,這個目標可以是另一個網頁,也可以是相同網頁上的不同位置,還可以是一個圖片,一個電子郵件地址,一個文件,甚至是一個應用程式。

什麼是URL?
URL是統一資源定位器(Uniform Resource Locator)的縮寫,也被稱為網頁地址,是網際網路上標準的資源的地址。
URL舉例
http://www.sohu.com/stu/intro.html
http://222.172.123.33/stu/intro.html

URL地址由4部分組成
第1部分:為協議:http://、ftp://等 
第2部分:為站點地址:可以是功能變數名稱或IP地址
第3部分:為頁面在站點中的目錄:stu
第4部分:為頁面名稱,例如 index.html
各部分之間用“/”符號隔開。
<a href="http://www.oldboyedu.com" target="_blank" >點我</a>

    href屬性指定目標網頁地址。該地址可以有幾種類型:

  • 絕對URL - 指向另一個站點(比如 href="http://www.jd.com
  • 相對URL - 指當前站點中確切的路徑(href="index.htm") #學django的時候會用的比較多
  • 錨URL - 指向頁面中的錨(href="#top"),博客的目錄經常用到,還可以跳轉到 name屬性為p1的a標簽上,xxx

    img

    target:

  • _blank表示在新標簽頁中打開目標網頁
  • _self表示在當前標簽頁中打開目標網頁

列表

    1.無序列表

<ul type="disc">
  <li>第一項</li>
  <li>第二項</li>
</ul>

    type屬性:

  • disc(實心圓點,預設值)
  • circle(空心圓圈)
  • square(實心方塊)
  • none(無樣式)

    2.有序列表

<ol type="1" start="2">
  <li>第一項</li>
  <li>第二項</li>
</ol>

    type屬性: start是從數字幾開始

  • 1 數字列表,預設值
  • A 大寫字母
  • a 小寫字母
  • Ⅰ大寫羅馬
  • ⅰ小寫羅馬

    3.標題列表(就像大綱一樣,有一個層級效果)

<dl>
  <dt>標題1</dt>
  <dd>內容1</dd>
  <dt>標題2</dt>
  <dd>內容1</dd>
  <dd>內容2</dd>
</dl>

表格

    表格是一個二維數據空間,一個表格由若幹行組成,一個行又有若幹單元格組成,單元格裡可以包含文字、列表、圖案、表單、數字元號、預置文本和其它的表格等內容。
    表格最重要的目的是顯示表格類數據。表格類數據是指最適合組織為表格格式(即按行和列組織)的數據。
    表格的基本結構:

<table border='1'>
  <thead> #標題部分
  <tr> #一行
    <th>序號</th> #一個單元格
    <th>姓名</th>
    <th>愛好</th>
  </tr>
  </thead>
  <tbody> #內容部分
  <tr> #一行
    <td>1</td> #一個單元格
    <td>Egon</td>
    <td>杠娘</td>
  </tr>
  <tr>
    <td>2</td>
    <td>Yuan</td>
    <td>日天</td>
  </tr>
  </tbody>
</table>

  屬性:

  • border: 表格邊框.
  • cellpadding: 內邊距 (內邊框和內容的距離)
  • cellspacing: 外邊距.(內外邊框的距離)
  • width: 像素 百分比.(最好通過css來設置長寬)
  • rowspan: 單元格豎跨多少行
  • colspan: 單元格橫跨多少列(即合併單元格)

img

    效果

    img

    上面這幾個屬性基本上用不到。

  其實標簽又可以分為兩類:1、展示給用戶看的 2、獲取用戶輸入內容的標簽,剛纔前面的這些標簽都是展示內容用的,下麵要學的標簽是捕獲用戶輸入的標簽。基本上HTML中常用的就這些標簽

form(最後再學這個標簽,先去學input標簽)

    功能:

    表單用於向伺服器傳輸數據,從而實現用戶與Web伺服器的交互

    表單能夠包含input系列標簽,比如文本欄位、覆選框、單選框、提交按鈕等等。

    表單還可以包含textarea、select、fieldset和 label標簽。

  表單屬性

屬性 描述
accept-charset 規定在被提交表單中使用的字元集(預設:頁面字元集)。
action 規定向何處提交表單的地址(URL)(提交頁面)。
autocomplete 規定瀏覽器應該自動完成表單(預設:開啟)。
enctype 規定被提交數據的編碼(預設:url-encoded)。
method 規定在提交表單時所用的 HTTP 方法(預設:GET)。
name 規定識別表單的名稱(對於 DOM 使用:document.forms.name)。
novalidate 規定瀏覽器不驗證表單。
target 規定 action 屬性中地址的目標(預設:_self)。

  表單元素

    基本概念:
    HTML表單是HTML元素中較為複雜的部分,表單往往和腳本、動態頁面、數據處理等功能相結合,因此它是製作動態網站很重要的內容。
    表單一般用來收集用戶的輸入信息
    表單工作原理:
    訪問者在瀏覽有表單的網頁時,可填寫必需的信息,然後按某個按鈕提交。這些信息通過Internet傳送到伺服器上。
    伺服器上專門的程式對這些數據進行處理,如果有錯誤會返回錯誤信息,並要求糾正錯誤。當數據完整無誤後,伺服器反饋一個輸入完成的信息。

    img

    img

    點擊提交按鈕,input中type=submit的那個按鈕,然後就會將form表單中所有用戶輸入的內容或者選擇的內容({name屬性:值,})都發給服務端(以我們自己寫的那個socket舉例,列印一下接收的內容),但是所有的輸入標簽必須有一個叫做name的屬性。

    img

    發現跳到這個頁面了:看url的內容,有了我們輸入的內容,並且是給你組合起來的,name屬性值和你輸入的值組合到一起了,通過&符號分隔,並且在路徑那裡加了個問號

    img

    列印一下socket接收的消息,你就發現已經接受到這些數據了

    img

    img

      img

      讓用戶選擇的,必須指定一個value值,要不然後端接收不到內容,用戶自己填寫的標簽,不需要指定value值

      然後再點擊提交,後端列印一下接收的數據:

      img

      但是這樣並不好,因為url中顯示了你的信息,並且如果內容很多的話,你的地址欄不能夠輸入那麼長的內容,為什麼會預設拼接到url裡面呢,因為form表單預設是get請求提交內容,我們可以改為post,來看看:post會把所有你提交的信息封裝到一個消息體裡面,在瀏覽器上就看不到了,對於小白來說,看著安全一些。

      img

      img

      點擊提交就跳到這個網址了:

      img

      在看後端列印的內容:

      img

      你會發現一個post請求:

      把內容往後拉,就能看到咱們提交的數據了

      img

      那麼你看,你的瀏覽器再你點擊提交的時候,獲取了你所輸入的內容,然後通過網路提交給你的服務端代碼程式了。

      然後我們後端通過提交過來的數據,來做某些事情,該驗證的驗證,該保存的保存

     所以記住form表單裡面有兩個屬性:action控制往哪裡提交數據、method控制用什麼方式提交。

      還有一個文件input:因為我們剛纔說,數據是通過組成一個字典發給後端的,但是文件怎麼做鍵值對啊,做不了,所以需要通過二進位流的形式一點一點的傳送給後端,就是這個multipart搞的事情,有個瞭解就行了,別糾結,到了django我們在細說。

      img

    註意:

      form表單提交數據的時候,必須有個submit按鈕

  下麵這個django的示例,等我學django的時候再說吧:

from django.conf.urls import url
from django.shortcuts import HttpResponse


def upload(request):
    print("request.GET:", request.GET)
    print("request.POST:", request.POST)

    if request.FILES:
        filename = request.FILES["file"].name
        with open(filename, 'wb') as f:
            for chunk in request.FILES['file'].chunks():
                f.write(chunk)
            return HttpResponse('上傳成功')
    return HttpResponse("收到了!")

urlpatterns = [
    url(r'^upload/', upload),
]

input(都試一下)

     元素會根據不同的 type 屬性,變化為多種形態。

type屬性值 表現形式 對應代碼
text 單行輸入文本
password 密碼輸入框(不顯示明文)
date 日期輸入框
checkbox 覆選框
radio 單選框
submit 提交按鈕 #發送瀏覽器上輸入標簽中的內容,配合form表單使用,頁面會刷新
reset 重置按鈕 #頁面不會刷新,將所有輸入的內容清空
button 普通按鈕
hidden 隱藏輸入框
file 文本選擇框 (等學了form表單之後再學這個)

  屬性說明:

  • name:表單提交時的“鍵”,註意和id的區別
  • value:表單提交時對應項的值
    • type="button", "reset", "submit"時,為按鈕上顯示的文本年內容
    • type="text","password","hidden"時,為輸入框的初始值
    • type="checkbox", "radio", "file",為輸入相關聯的值
  • checked:radio和checkbox預設被選中的項
  • readonly:text和password設置只讀
  • disabled:所有input均適用

img

select標簽

<form action="" method="post">
  <select name="city" id="city">
    <option value="1">北京</option>
    <option selected="selected" value="2">上海</option> #預設選中,當屬性和值相同時,可以簡寫一個selected就行了
    <option value="3">廣州</option>
    <option value="4">深圳</option>
  </select>
</form>

  屬性說明:

  • multiple:布爾屬性,設置後為多選下拉框,否則預設單選
  • disabled:禁用
  • selected:預設選中該項
  • value:定義提交時的選項值

 

label標簽

    定義:

    1. label 元素不會向用戶呈現任何特殊效果。但是點擊label標簽裡面的文本,那麼和他關聯的input標簽就獲得了游標,讓你輸入內容
<form action="">
  <label for="username">用戶名</label>  #for和input的id屬性一樣,就關聯在一起了
  <input type="text" id="username" name="username">
</form>

img

    img

textarea多行文本

<textarea name="memo" id="memo" cols="30" rows="10">
  預設內容
</textarea>

  屬性說明:

  • name:名稱
  • rows:行數 #相當於文本框高度設置
  • cols:列數 #相當於文本框長度設置
  • disabled:禁用

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • AS報錯:lambda expressions are not supported at this language level 解決方法 1) Source Compatibility選擇1.8; 2) Target Compatibility 選擇1.8. 點擊應用即可。 ...
  • 功能:1.根據數據顯示當前所未完成的事件, 2.可通過輸入框進行事件的添加,可標記已完成的事件併進行刪除,可修改已添加的事件。 ps:插件引入均使用本地文件,需改用靜態CDN。 效果: 代碼實現: ...
  • 最近學習了一下js組件相關知識,但找到的資料比較少,一知半解,先做個簡單的筆記吧。 首先定義一個類,可以在裡面添加方法: //這是個下拉框組件,放在select.js里 <script> var tree = { treeList: function(myContent) { var list='< ...
  • HTML5提供了很多新的標簽,由於HTML5的相容性比較差,HTML5的標簽常用於手機端 CSS3結構偽類選擇器 :first-child 選中第一個元素 :last-child 選中最後一個元素 :nth-child(n) 選中第幾個元素 其中n除了填寫數字代表第幾個元素外,填寫n代表選擇所有元素 ...
  • 1.在本地項目中基於NPM/YARN安裝第三方模塊 package.json 2.安裝在本地和全局的區別 3.NODE入門 NODE本身是基於CommonJS模塊規範設計的,所以模塊是NODE的組成 內置模塊:NODE天生提供給JS調取使用的 第三方模塊:別人寫好的,我們可以基於NPM安裝使用 自定 ...
  • 對於目前的圖片懶載入,我們一般採用的是通過第三方庫或懶載入庫來實現,但是該方式的顯著問題就是,必須按順序執行: 1、載入初始的 HTML 響應內容 2、載入懶載入庫 3、載入圖片 假如瀏覽器能直接支持懶載入,那是最好的,這一想法也不是不可能哦!從Chrome 75開始,我們可以通過切換兩個開關來手動 ...
  • 日常後臺迭代開發,需要在瀏覽器刷新時記錄下當前tab和翻頁數,用的elementUI。 其實數據記錄倒是挺簡單的,localstorage或者sessionstorage都行,但在組件生命周期鉤子func:created中設置pagination的current-page時,不生效。 嘗試過vm.$ ...
  • 對於jQuery的調用,我們一般都會傳入參數 一、前置(DOM對象和jQuery對象) 1. DOM對象, 關於這個,應該是前端的基礎知識了,在文檔對象模型中,每個部分都是節點。 2. jQuery對象 這個是指通過jQuery構造函數創建出來的對象,可以通過jQuery選擇器獲取到,並以類數組的形 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...