Heim  >  Artikel  >  WeChat-Applet  >  Analyse des WeChat Mini-Programmpuffers

Analyse des WeChat Mini-Programmpuffers

不言
不言Original
2018-06-27 15:12:392689Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur detaillierten Erklärung des WeChat Mini-Programmpuffers vorgestellt. Freunde, die sie benötigen, können auf

Die detaillierte Erklärung des WeChat Mini-Programmpuffers

Die JavaScript-Sprache selbst hat nur String-Datentypen, keine binären Datentypen.


Aber bei der Verarbeitung von Streams wie TCP oder Dateistreams müssen Binärdaten verwendet werden. Daher ist in Node.js eine Buffer-Klasse definiert, mit der ein Pufferbereich speziell zum Speichern von Binärdaten erstellt wird.


In node.js ist die Buffer-Klasse eine Kernbibliothek, die mit dem Node-Kern geliefert wird. Die Buffer-Bibliothek bietet eine Methode zum Speichern von Rohdaten in Node.js und ermöglicht es Node.js, Binärdaten zu verarbeiten. Wann immer Sie während E/A-Vorgängen in Node.js verschobene Daten verarbeiten müssen, ist es möglich, die Buffer-Bibliothek zu verwenden. . Rohdaten werden in Instanzen der Buffer-Klasse gespeichert. Ein Puffer ähnelt einem ganzzahligen Array, entspricht jedoch einem Teil des Rohspeichers außerhalb des V8-Heapspeichers.

Puffer erstellen

1.长度为10的实例
var buf = new Buffer(10)
2.通过给定的数组创建
var buf = new Buffer([10,20,30,40,50])
3.通过字符串创建
var buf = new Buffer("www.csdn.net","utf-8")
utf-8 是默认的编码方式
支持以下编码:"ascii", "utf8", "utf16le", "ucs2", "base64" 和 "hex"。

Buffer.write() schreiben

var buf = new Buffer(200)
var len = buf.write("www.csdn.net")
console.log("写入字节数:" + len)

  • string – Der String, der in den Puffer geschrieben werden soll.

  • Offset – der Indexwert, bei dem mit dem Schreiben des Puffers begonnen wird. Der Standardwert ist 0.

  • length – die Anzahl der geschriebenen Bytes, standardmäßig buffer.length

  • encoding – die verwendete Codierung. Der Standardwert ist „utf8“.

Cache read.toString()

buf = new Buffer(26);
for (var i = 0 ; i < 26 ; i++) {
 buf[i] = i + 97;
}

console.log( buf.toString(&#39;ascii&#39;));    // 输出: abcdefghijklmnopqrstuvwxyz
console.log( buf.toString(&#39;ascii&#39;,0,5));  // 输出: abcde
console.log( buf.toString(&#39;utf8&#39;,0,5));  // 输出: abcde
console.log( buf.toString(undefined,0,5)); // 使用 &#39;utf8&#39; 编码, 并输出: abcde

  1. Kodierung - die zu verwendende Kodierung. Der Standardwert ist „utf8“.

  2. start – Gibt die Indexposition an, an der mit dem Lesen begonnen werden soll. Der Standardwert ist 0.

  3. end – Endposition, standardmäßig das Ende des Puffers.

Puffer zu JSON

var buf = new Buffer(&#39;www.runoob.com&#39;);
var json = buf.toJSON(buf);
console.log(json);

Merge Buffer.concat([, ])

var buf = new Buffer("北京")
var buf1 = new Buffer("上海")
var buf2 = Buffer.concat([buf,buf1],12)
console.log(buf2.toString())

  • list Eine Array-Liste von Pufferobjekten, die zum Zusammenführen verwendet werden.

  • totalLength gibt die Gesamtlänge der zusammengeführten Buffer-Objekte an.


Compare.compare(otherBuffer)

Eingeführt in Node.js v0.12.2-Version

var buffer1 = new Buffer("AVCX")
var buffer2 = new Buffer("ACVV")

var result = buffer1.compare(buffer2)

if(result < 0) {
  console.log(buffer1 + " 在 " + buffer2 + "之前");
}else if(result == 0){
  console.log(buffer1 + " 与 " + buffer2 + "相同");
}else {
  console.log(buffer1 + " 在 " + buffer2 + "之后");
}

copy.compare(buffer2)

buf.copy(targetBuffer[, targetStart[, sourceStart[, sourceEnd]]])

  1. targetBuffer - Das zu kopierende Buffer-Objekt.

  2. targetStart – Zahl, optional, Standard: 0

  3. sourceStart – Zahl, optional, Standard: 0

  4. sourceEnd – Zahl, optional, Standard: buffer.length


var buf1 = new Buffer("beiJing")
var buf2 = new Buffer(8)
buf1.copy(buf2)
console.log("buf2 content:"+buf2.toString())

clipping .slice( buffer2)

buf.slice([start[, end]])

  1. Startnummer, optional, Standard: 0

  2. end – Zahl, optional, Standard: buffer.length

Rückgabewert

gibt einen neuen Puffer zurück, der auf den zeigt Gleicher Speicher wie der alte Puffer, aber vom Anfang bis zum Ende des Indexes abgeschnitten.


var buf1 = new Buffer("beiJing")
var buf2 = buf1.slice(0,8)
console.log("buf2 content:"+buf2)
// beiJing

length.length

buf.length;

//Gibt die Anzahl der Bytes dieses Puffers zurück. Beachten Sie, dass dies nicht unbedingt die Größe des Pufferinhalts ist. Die Länge ist die vom Pufferobjekt zugewiesene Speichermenge und ändert sich nicht, wenn sich der Inhalt des Pufferobjekts ändert.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website.

Verwandte Empfehlungen:

Über die dynamische Parameterübertragung von WeChat-Miniprogrammen

Über die asynchrone Verarbeitung von WeChat-Miniprogrammen Programme

Einführung in die Datenspeicherung, Parameterübergabe und Daten-Caching in der WeChat-Applet-Entwicklung

Das obige ist der detaillierte Inhalt vonAnalyse des WeChat Mini-Programmpuffers. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn