เริ่มต้นอย่างรวดเร็วบนเว็บ
ในอีกไม่กี่นาที เว็บไซต์ของคุณจะอ่าน feature flag ของจริง — พร้อมแคชที่ทนทาน คำตอบแบบ fail-safe สำหรับทุกสถานการณ์ และไม่มีอะไรให้คุณต้องจัดการในเบราว์เซอร์
ไม่มี runtime dependency SDK ทั้งตัวอยู่ใต้เพดาน 10 kB gzip
1. ติดตั้ง
หัวข้อที่มีชื่อว่า “1. ติดตั้ง”SDK อยู่ในรีโพซิทอรีสาธารณะบน GitHub — ติดตั้งจากตรงนั้นได้เลย โดยปักหมุดไว้ที่รีลีส
npm install github:FortressFlag/FortressFlag_SDK_web#v1.0.0แพ็กเกจจะ build ตัวเองตอนติดตั้ง และ import ด้านล่างคือ entry point ของมัน
2. เริ่ม SDK
หัวข้อที่มีชื่อว่า “2. เริ่ม SDK”ครั้งเดียว ช่วงต้นของการ bootstrap หน้าหรือแอปของคุณ
import { Environment, FortressFlag } from "@fortressflag/sdk-web";
FortressFlag.start({ sdkKey: "ffc_prod_…", // จากหน้าจอคีย์ SDK ของโปรเจกต์คุณ environment: Environment.PRODUCTION,});start คืนค่าทันที ค่าในแคชจากการเข้าชมครั้งก่อนพร้อมใช้ทันที และค่าใหม่มาถึงในเบื้องหลัง คีย์นี้คือคีย์ไคลเอนต์ — มันมองเห็นได้ในซอร์สของหน้าคุณโดยการออกแบบ
3. อ่าน flag
หัวข้อที่มีชื่อว่า “3. อ่าน flag”if (FortressFlag.isEnabled("new-checkout", false)) { // เรนเดอร์หน้าชำระเงินใหม่}stringValue และ numberValue อ่าน flag แบบหลายตัวแปรด้วยวิธีเดียวกัน และ FortressFlag.onChange บอกคุณเมื่อค่าขยับ เพื่อให้คุณเรนเดอร์ใหม่ได้
แค่นั้น — flag ของคุณใช้งานจริงแล้ว สลับมันในแดชบอร์ดแล้วเปิดหน้าอีกครั้ง (หรือรอให้ poll ครบรอบ) เพื่อดูมันตามไป
ไม่มีอะไรที่นี่ throw เด็ดขาด
หัวข้อที่มีชื่อว่า “ไม่มีอะไรที่นี่ throw เด็ดขาด”ไม่มีการเรียกใดใน API นี้ที่ throw และไม่มี promise จากมันที่ reject ทุกการอ่าน resolve ผ่านลำดับขั้น ค่าที่ดึงมาใหม่สุด แล้วค่าล่าสุดที่เบราว์เซอร์นี้บันทึกไว้ แล้วค่าเริ่มต้นของคุณ แล้ว false เหตุขัดข้องของ FortressFlag เครือข่ายที่ตาย ตัวบล็อกโฆษณา คีย์ที่ถูกเพิกถอน — ทั้งหมด resolve เป็นค่า flag ไม่มีอันไหนไปถึงโค้ดของคุณในรูปข้อผิดพลาด
(กรณีตัวบล็อกโฆษณานั้นมีจริง ส่วนขยายด้านความเป็นส่วนตัวบางตัวบล็อกคำขอ flag ค่าในแคชยังให้บริการต่อ และเบราว์เซอร์ที่ไม่เคยดึงข้อมูลเลยจะให้บริการค่าเริ่มต้นของคุณ — “flag ไม่อัปเดตเมื่อเปิด uBlock” คือลำดับขั้นกำลังทำงาน ไม่ใช่บั๊ก)
อะไรอยู่ในเบราว์เซอร์ พูดกันตรง ๆ
หัวข้อที่มีชื่อว่า “อะไรอยู่ในเบราว์เซอร์ พูดกันตรง ๆ”- ตัวตนของอุปกรณ์อยู่ใน
localStorageจำกัดตาม origin ของคุณ มันถูกสร้างแบบสุ่มและเป็นนามแฝง — และ JavaScript ของหน้าคุณเองอ่านได้ เป็นค่าประเภทเดียวกับคีย์ SDK ที่อยู่ข้าง ๆ - หน้าต่างส่วนตัวสร้างตัวตนแบบใช้แล้วทิ้ง เซสชันส่วนตัวแต่ละครั้งนับเป็นหนึ่งอุปกรณ์ตราบเท่าที่มันอยู่ ผู้ใช้ที่ล้างข้อมูลไซต์ก็เป็นอุปกรณ์ใหม่เช่นกัน และคนหนึ่งคนบนเว็บไซต์ แอป iOS และแอป Android ของคุณคือสูงสุดสามอุปกรณ์ — ไม่มีการเชื่อมโยงข้ามแพลตฟอร์ม โดยการออกแบบ
- ชุดทดสอบของคุณฟรี เบราว์เซอร์ที่ขับเคลื่อนโดย Playwright, Selenium, Puppeteer หรือ Cypress ประกาศตัวเอง และ SDK สร้างตัวตน
sim_ตรงนั้น ได้รับ flag ไม่เคยถูกคิดเงิน - แท็กเวอร์ชันไม่มีบนเว็บ SDK ส่ง
platformและsdkVersionให้อัตโนมัติ แต่ไม่มีappVersionหรือosVersionที่เชื่อถือได้สำหรับหน้าเว็บ — กฎการเจาะกลุ่มบนแท็กเหล่านั้นจะไม่ตรงกับเบราว์เซอร์เลย
ไปต่อที่ไหนดี
หัวข้อที่มีชื่อว่า “ไปต่อที่ไหนดี”- Flag ไปถึงแอปของคุณอย่างไร — การ poll และแคช
- ตัวตนของอุปกรณ์และการเรียกเก็บเงิน — ตัวตนในคีย์ที่เก็บนั้น
- การเจาะกลุ่ม — กฎ เซกเมนต์ และ rollout