เมธอด script.createCachedData() ใช้สำหรับสร้างแคชโค้ด (code cache) ที่จะใช้ร่วมกับตัวเลือก cachedData ของคอนสตรัคเตอร์ script แคชข้อมูลนี้สามารถเรียกใช้ได้หลายครั้งโดยไม่มีความหน่วง (latency) เมธอดนี้เป็นอินเทอร์เฟซการเขียนโปรแกรมในตัว (built-in) จากโมดูล 'script'
ไวยากรณ์
script.createCachedData()
พารามิเตอร์
เนื่องจากมีแค่การแคชข้อมูล จึงไม่ต้องการอินพุตเฉพาะเจาะจงจากผู้ใช้ มีแต่คืนค่าบัฟเฟอร์ที่แคชไว้
ตัวอย่าง
สร้างไฟล์ชื่อ createCachedData.js และคัดลอกโค้ดด้านล่าง หลังจากสร้างไฟล์แล้ว ใช้คำสั่งต่อไปนี้เพื่อรันโค้ด:
node createCachedData.js
createCachedData.js
// โปรแกรม Node.js สาธิตการทำงานของเมธอด script.createCachedData()
// นำเข้าโมดูล vm
const vm = require("vm");
// กำหนดสคริปต์เป็นค่าคงที่ และใช้ฟังก์ชันด้านล่าง
// เพื่อสร้างข้อมูลแคชสำหรับผลต่างของสองตัวเลข
const script = new vm.Script(`
function add(a, b) {
return a - b;
}
const x = add(2, 1);
`);
// สร้างข้อมูลแคชโดยไม่แคชตัวแปร
const cacheWithoutx = script.createCachedData();
console.log(cacheWithoutx);
ผลลัพธ์
C:\home\node>> node createCachedData.js <Buffer b5 03 de c0 8a f4 d4 f4 3d 00 00 00 ff 03 00 00 d5 a2 f5 b7 06 00 00 00 00 00 00 00 28 02 00 00 8f 87 4d e3 59 55 98 f9 00 00 00 80 20 00 00 80 00 03 ... >
ตัวอย่างเพิ่มเติม
ลองดูตัวอย่างอีกหนึ่งกรณี:
// โปรแกรม Node.js สาธิตการทำงานของเมธอด script.createCachedData()
// นำเข้าโมดูล vm
const vm = require("vm");
// กำหนดสคริปต์เป็นค่าคงที่ และใช้ฟังก์ชันด้านล่าง
// เพื่อสร้างข้อมูลแคชสำหรับผลต่างของสองตัวเลข
const script = new vm.Script(`
function add(a, b) {
return a - b;
}
const x = add(2, 1);
`);
// เรียก runInThisContext จากโมดูล script
script.runInThisContext();
// สร้างข้อมูลแคชพร้อมกับแคชตัวแปร
const cacheWithx = script.createCachedData();
console.log(cacheWithx);
ผลลัพธ์
C:\home\node>> node createCachedData.js <Buffer b5 03 de c0 8a f4 d4 f4 3d 00 00 00 ff 03 00 00 d5 a2 f5 b7 06 00 00 00 00 00 00 00 00 03 00 00 15 80 fd 5d 69 21 3a a9 00 00 00 80 20 00 00 80 38 04 ... >