คำขอคำแนะนำไคลเอ็นต์ของ Save-Data
ส่วนหัว
ที่มีในเบราว์เซอร์ Chrome, Opera และ Yandex ช่วยให้นักพัฒนาซอฟต์แวร์
แอปพลิเคชันที่รวดเร็วยิ่งขึ้นให้แก่ผู้ใช้ที่เลือกใช้โหมดประหยัดอินเทอร์เน็ตในเบราว์เซอร์ของตน
ความจำเป็นในการใช้หน้าเว็บขนาดเล็ก
ทุกคนเห็นด้วยว่าหน้าเว็บที่เร็วขึ้นและใช้ทรัพยากรน้อยลงทำให้ผู้ใช้พอใจมากกว่า มอบประสบการณ์ที่ดีขึ้น เข้าใจและคงความสนใจของเนื้อหาไว้ได้ดีขึ้น Conversion และรายได้ที่เพิ่มขึ้น Google การวิจัยแสดงให้เห็นว่า "...หน้าเว็บที่ได้รับการเพิ่มประสิทธิภาพจะโหลดได้เร็วกว่าหน้าเว็บแบบเดิม 4 เท่าและใช้ 80% ไบต์น้อยลง เนื่องจากหน้าเว็บเหล่านี้โหลดเร็วกว่ามาก เราจึงพบว่าอัตราการเติบโตเพิ่มขึ้นถึง 50% การเข้าชมหน้าเว็บเหล่านี้"
และแม้ว่าจำนวนการเชื่อมต่อ 2G จะอยู่ใน การปฏิเสธ 2G ยังคงเป็นเครือข่ายหลัก เทคโนโลยี ในปี 2015 ความแพร่หลายและความพร้อมใช้งานของเครือข่าย 3G และ 4G กำลังเติบโต อย่างรวดเร็ว แต่ต้นทุนการเป็นเจ้าของที่เกี่ยวข้องและข้อจำกัดของเครือข่ายยังคง ปัจจัยสำคัญสำหรับผู้ใช้หลายร้อยล้านคน
สิ่งเหล่านี้เป็นเหตุผลที่ดีสำหรับการเพิ่มประสิทธิภาพหน้าเว็บ
มีวิธีอื่นในการปรับปรุงความเร็วเว็บไซต์โดยไม่ต้องอาศัยนักพัฒนาแอปโดยตรง เช่น เบราว์เซอร์พร็อกซีและบริการแปลง แม้ว่า บริการค่อนข้างเป็นที่นิยม แต่ก็มีข้อด้อยสำคัญ คือ การบีบอัดรูปภาพและข้อความ (และบางครั้งก็ยอมรับไม่ได้) ไม่สามารถประมวลผลได้ (HTTPS) ที่ปลอดภัย เพิ่มประสิทธิภาพเฉพาะหน้าเว็บที่เข้าชมผ่านผลการค้นหา และ และอีกมากมาย ความนิยมของบริการเหล่านี้เป็นอย่างมากเองก็เป็นตัวบ่งชี้ว่าเว็บ นักพัฒนาซอฟต์แวร์ไม่สามารถตอบสนองความต้องการของผู้ใช้ ที่เร็วและประหยัดได้ แอปพลิเคชันและหน้าเว็บได้ แต่การบรรลุเป้าหมายนั้นก็ซับซ้อนและบางครั้ง เส้นทางที่ยาก
ส่วนหัวของคำขอ Save-Data
เทคนิคที่ค่อนข้างตรงไปตรงมาคือการให้เบราว์เซอร์ช่วยเหลือ โดยใช้
ส่วนหัวของคำขอ Save-Data
เมื่อระบุส่วนหัวนี้ หน้าเว็บจะสามารถปรับแต่ง
และมอบประสบการณ์ของผู้ใช้ที่ได้รับการเพิ่มประสิทธิภาพ
โดยมีข้อจำกัดด้านต้นทุนและประสิทธิภาพ
ผู้ใช้
เบราว์เซอร์ที่รองรับ (ด้านล่าง) ช่วยให้ผู้ใช้เปิดใช้ *โหมดประหยัดอินเทอร์เน็ต ให้สิทธิ์เบราว์เซอร์ในการใช้ชุดการเพิ่มประสิทธิภาพเพื่อลด ปริมาณข้อมูลที่ต้องใช้ในการแสดงผลหน้าเว็บ เมื่อฟีเจอร์นี้เปิดเผย หรือ เบราว์เซอร์อาจขอภาพความละเอียดต่ำ และเลื่อนการโหลดออกไป ทรัพยากรบางรายการ หรือกำหนดเส้นทางคำขอผ่านบริการที่มีผลอื่นๆ การเพิ่มประสิทธิภาพเฉพาะเนื้อหา เช่น การบีบอัดทรัพยากรรูปภาพและข้อความ
การสนับสนุนเบราว์เซอร์
- Chrome 49+ จะโฆษณา
Save-Data
เมื่อผู้ใช้ เปิดใช้ตัวเลือก "การประหยัดอินเทอร์เน็ต" ตัวเลือกบนอุปกรณ์เคลื่อนที่ หรือตัวเลือก "โปรแกรมประหยัดอินเทอร์เน็ต" ในเบราว์เซอร์บนเดสก์ท็อป - Opera 35+ จะโฆษณา
Save-Data
เมื่อผู้ใช้เปิดใช้ "Opera เทอร์โบ" โหมดเดสก์ท็อป หรือ "การประหยัดอินเทอร์เน็ต" ตัวเลือก บนเบราว์เซอร์ Android - Yandex 16.2+ โฆษณา
Save-Data
เมื่อ Turbo โหมดคือ เปิดใช้งานบนเดสก์ท็อปหรืออุปกรณ์เคลื่อนที่ เบราว์เซอร์
กำลังตรวจหาการตั้งค่า Save-Data
เพื่อกำหนดว่าควรส่ง "แสงสว่าง" เมื่อใด ประสบการณ์ของผู้ใช้
สามารถตรวจสอบส่วนหัวของคำขอคำแนะนำไคลเอ็นต์ Save-Data
ได้ ช่วงเวลานี้
ส่วนหัวของคำขอจะระบุความต้องการของลูกค้าสำหรับปริมาณการใช้อินเทอร์เน็ตที่ลดลงเนื่องจาก
ค่าใช้จ่ายในการโอนมาก การเชื่อมต่อช้า หรือสาเหตุอื่นๆ
เมื่อผู้ใช้เปิดใช้โหมดประหยัดอินเทอร์เน็ตในเบราว์เซอร์ เบราว์เซอร์จะเพิ่ม
ส่วนหัวของคำขอ Save-Data
สำหรับคำขอขาออกทั้งหมด (ทั้ง HTTP และ HTTPS)
ขณะที่เขียนนี้ เบราว์เซอร์จะโฆษณาโทเค็น *on เพียง 1 รายการในส่วนหัว
(Save-Data: on
) แต่อาจขยายเวลาในอนาคตเพื่อระบุถึงผู้ใช้รายอื่น
การตั้งค่าส่วนตัว
นอกจากนี้ ก็ยังตรวจจับได้ว่ามีการเปิด Save-Data
ใน JavaScript หรือไม่
if ('connection' in navigator) {
if (navigator.connection.saveData === true) {
// Implement data saving operations here.
}
}
กำลังตรวจสอบว่ามีออบเจ็กต์ connection
ภายใน navigator
หรือไม่
มีความสำคัญ เนื่องจากแสดงถึง Network Information API ซึ่งเป็นเพียง
มีการใช้งานใน Chrome, Chrome สำหรับ Android และอินเทอร์เน็ตเบราว์เซอร์ของ Samsung จาก
คุณก็เพียงแต่ต้องตรวจสอบว่า navigator.connection.saveData
เท่ากับ
true
จากนั้นคุณจะใช้การดำเนินการบันทึกข้อมูลใดก็ได้ในเงื่อนไขดังกล่าว
หากแอปพลิเคชันของคุณใช้บริการ
เราสามารถ
ตรวจสอบส่วนหัวของคำขอและใช้ตรรกะที่เกี่ยวข้องเพื่อเพิ่มประสิทธิภาพประสบการณ์การใช้งาน
หรือเซิร์ฟเวอร์อาจมองหาค่ากำหนดโฆษณาใน
ส่วนหัวของคำขอ Save-Data
และแสดงผลการตอบกลับสำรอง ซึ่งต่างออกไป
มาร์กอัป รูปภาพและวิดีโอที่เล็กลง และอื่นๆ
เคล็ดลับการใช้งานและแนวทางปฏิบัติที่ดีที่สุด
- เมื่อใช้
Save-Data
ให้ระบุอุปกรณ์ UI ที่รองรับและอนุญาตให้ผู้ใช้ เพื่อสลับระหว่างประสบการณ์การใช้งานได้โดยง่าย ดังตัวอย่างต่อไปนี้- แจ้งให้ผู้ใช้ทราบว่า
Save-Data
มีการสนับสนุนและสนับสนุนให้ใช้ - อนุญาตให้ผู้ใช้ระบุและเลือกโหมดที่มีข้อความแจ้งที่เหมาะสม ปุ่มเปิด/ปิดหรือช่องทำเครื่องหมายที่ใช้งานง่าย
- เมื่อเลือกโหมดประหยัดอินเทอร์เน็ต ให้ประกาศและให้ วิธีปิดใช้งานและเปลี่ยนกลับไปใช้ประสบการณ์เต็มรูปแบบ ถ้าต้องการ
- แจ้งให้ผู้ใช้ทราบว่า
- อย่าลืมว่าแอปพลิเคชันขนาดเล็กก็ไม่ใช่แอปพลิเคชันรองลงมา โดยจะไม่นำไปใช้
ละฟังก์ชันหรือข้อมูลสำคัญไป เพื่อให้เข้าใจ
ที่เกี่ยวข้องและประสบการณ์ของผู้ใช้ด้วย ดังตัวอย่างต่อไปนี้
- แอปพลิเคชันแกลเลอรีรูปภาพอาจแสดงตัวอย่างความละเอียดต่ำหรือ กลไกภาพหมุนที่ใช้โค้ดจำนวนมาก
- แอปพลิเคชันการค้นหาอาจแสดงผลการค้นหาพร้อมกันน้อยกว่า จึงจำกัดจำนวนของ ผลลัพธ์ที่ใช้สื่อจำนวนมาก หรือลดจำนวนทรัพยากร Dependency ที่จำเป็นในการแสดงผล หน้าเว็บ
- เว็บไซต์ข่าวอาจแสดงเรื่องราวน้อยลง ยกเว้นหมวดหมู่ที่ไม่ค่อยได้รับความนิยม หรือแสดงตัวอย่างสื่อที่เล็กลง
- ระบุตรรกะเซิร์ฟเวอร์เพื่อตรวจสอบส่วนหัวของคำขอ
Save-Data
และพิจารณา แสดงการตอบสนองของหน้าเว็บในรูปแบบที่ง่ายขึ้นเมื่อเปิดใช้งาน เช่น ลดจำนวนทรัพยากรและทรัพยากร Dependency ที่จำเป็น บังคับใช้อย่างเข้มงวดมากขึ้น การบีบอัดทรัพยากร ฯลฯ- หากคุณแสดงคำตอบสำรองตามส่วนหัว
Save-Data
อย่าลืมเพิ่มลงในรายการ "เปลี่ยนแปลง" —Vary: Save-Data
— แคชอัปสตรีมที่ควรแคชและแสดงเวอร์ชันนี้ต่อเมื่อ มีส่วนหัวของคำขอSave-Data
รายการ ดูรายละเอียดเพิ่มเติมได้จากแนวทางปฏิบัติแนะนำ สำหรับ การโต้ตอบกับแคช
- หากคุณแสดงคำตอบสำรองตามส่วนหัว
- หากคุณใช้โปรแกรมทำงานของบริการ แอปพลิเคชันของคุณจะตรวจพบได้เมื่อมีการบันทึกข้อมูล
เปิดใช้ตัวเลือกนี้โดยการตรวจหาการมีอยู่ของคำขอ
Save-Data
ไหม หรือโดยการตรวจสอบค่าของnavigator.connection.saveData
หากเปิดใช้ ให้พิจารณาว่าคุณจะเขียนคำขอใหม่เพื่อดึงข้อมูลได้หรือไม่ ไบต์น้อยลง หรือใช้การตอบกลับที่ดึงข้อมูลแล้ว - ลองเพิ่ม
Save-Data
ด้วยสัญญาณอื่นๆ เช่น ข้อมูลเกี่ยวกับ ประเภทการเชื่อมต่อและเทคโนโลยีของผู้ใช้ (โปรดดู NetInfo API) ตัวอย่างเช่น คุณอาจ ต้องการมอบประสบการณ์การใช้งานที่ไม่ซับซ้อนแก่ผู้ใช้ทุกคนผ่านการเชื่อมต่อ 2G แม้ว่า ไม่ได้เปิดใช้Save-Data
ในทางกลับกัน เพียงเพราะผู้ใช้ "เร็ว" 4G ไม่ได้หมายความว่าผู้ใช้ไม่สนใจที่จะบันทึกข้อมูล เช่น เมื่อโรมมิ่ง นอกจากนี้ คุณยังสามารถเพิ่มการปรากฏของSave-Data
พร้อมคําแนะนําสำหรับลูกค้าDevice-Memory
เพื่อปรับให้เข้ากับผู้ใช้เพิ่มเติม อุปกรณ์ที่มีหน่วยความจำจำกัด จะมีการโฆษณาหน่วยความจำอุปกรณ์ของผู้ใช้ใน คำแนะนำไคลเอ็นต์navigator.deviceMemory
รายการ
สูตรอาหาร
สิ่งที่ทำได้ผ่าน Save-Data
จะจำกัดอยู่แค่สิ่งที่คุณคิดได้
ด้วย เพื่อให้คุณทราบว่าอะไรเป็นไปได้ มาลองใช้กันสักหน่อย
กรณี คุณอาจนึกถึงกรณีการใช้งานอื่นๆ ของตนเองเมื่ออ่านข้อความนี้
ทดลองทำสิ่งใหม่ๆ และดูว่าอะไรทำได้
กำลังตรวจสอบ Save-Data
ในโค้ดฝั่งเซิร์ฟเวอร์
ขณะที่สถานะ Save-Data
คือสิ่งที่คุณสามารถตรวจพบใน JavaScript ผ่านทาง
navigator.connection.saveData
ที่ตรวจหาที่ฝั่งเซิร์ฟเวอร์คือ
บางครั้งก็แนะนำได้ JavaScript อาจล้มเหลวในบางกรณี นอกจากนี้
การตรวจหาฝั่งเซิร์ฟเวอร์เป็นวิธีเดียวในการแก้ไขมาร์กอัปก่อนจะส่งไปยัง
ซึ่งมีส่วนเกี่ยวข้องกับ Use Case ที่เป็นประโยชน์มากที่สุดของ Save-Data
ไวยากรณ์เฉพาะสำหรับการตรวจหาส่วนหัว Save-Data
ในโค้ดฝั่งเซิร์ฟเวอร์
ขึ้นอยู่กับภาษาที่ใช้ แต่แนวคิดพื้นฐานควรจะเหมือนกันสำหรับ
แบ็กเอนด์ของแอปพลิเคชัน ตัวอย่างเช่น ใน PHP ส่วนหัวของคำขอจะจัดเก็บไว้ที่
$_SERVER
ระดับสูงทั่วโลก
อาร์เรย์ที่ดัชนี
ขึ้นต้นด้วย HTTP_
ซึ่งหมายความว่าคุณสามารถตรวจหาส่วนหัว Save-Data
ได้โดย
ตรวจสอบการมีอยู่และค่าของตัวแปร $_SERVER["HTTP_SAVE_DATA"]
ดังนี้
// false by default.
$saveData = false;
// Check if the `Save-Data` header exists and is set to a value of "on".
if (isset($_SERVER["HTTP_SAVE_DATA"]) && strtolower($_SERVER["HTTP_SAVE_DATA"]) === "on") {
// `Save-Data` detected!
$saveData = true;
}
หากคุณวางการตรวจสอบนี้ก่อนที่จะส่งมาร์กอัปไปยังไคลเอ็นต์ $saveData
จะมีสถานะ Save-Data
และจะพร้อมใช้งานทุกที่สำหรับ
ใช้บนหน้านั้นๆ เมื่อเห็นภาพกลไกนี้แล้ว เราจะมาดูตัวอย่างของ
วิธีที่เราใช้จำกัดปริมาณข้อมูลที่เราส่งไปให้ผู้ใช้
แสดงรูปภาพความละเอียดต่ำสำหรับหน้าจอความละเอียดสูง
กรณีการใช้งานที่พบบ่อยสำหรับรูปภาพในเว็บคือการแสดงรูปภาพเป็นชุดๆ ละ 2 รูป ดังนี้
รูปภาพ 1 รูปสำหรับ "มาตรฐาน" 1 หน้าจอ (1 เท่า) และรูปภาพอีกรูปขนาดใหญ่กว่า 2 เท่า
(2 เท่า) สําหรับหน้าจอความละเอียดสูง (เช่น Retina
Display) ระดับสูงนี้
หน้าจอความละเอียดไม่จำเป็นต้องจำกัดอยู่เฉพาะสำหรับอุปกรณ์ระดับไฮเอนด์ และ
มากขึ้นเรื่อยๆ ในกรณีที่แอปพลิเคชันที่ใช้ทรัพยากรน้อย
การส่งรูปภาพที่มีความละเอียดต่ำ (1x) ไปยังรูปภาพเหล่านี้ควรระมัดระวัง
มากกว่าตัวแปรที่มีขนาดใหญ่กว่า (2 เท่า) เพื่อให้บรรลุเป้าหมายนี้เมื่อSave-Data
ที่มีอยู่ เราเพียงแค่แก้ไขมาร์กอัปที่เราส่งไปให้ลูกค้า ดังนี้
if ($saveData === true) {
// Send a low-resolution version of the image for clients specifying `Save-Data`.
?><img src="butterfly-1x.jpg" alt="A butterfly perched on a flower."><?php
}
else {
// Send the usual assets for everyone else.
?><img src="butterfly-1x.jpg" srcset="butterfly-2x.jpg 2x, butterfly-1x.jpg 1x" alt="A butterfly perched on a flower."><?php
}
กรณีการใช้งานนี้เป็นตัวอย่างที่ดีมากของความพยายามเพียงเล็กน้อยในการรองรับ
บุคคลที่ขอให้คุณส่งข้อมูลให้น้อยลง หากคุณไม่ชอบ
การแก้ไขมาร์กอัปที่ระบบแบ็กเอนด์ก็เช่นกัน คุณอาจได้ผลลัพธ์เดียวกันโดย
โดยใช้โมดูลการเขียน URL ใหม่ เช่น Apache
mod_rewrite
มี
เป็นตัวอย่างของวิธีบรรลุ
นี้ ด้วย
การกำหนดค่าที่ค่อนข้างน้อย
นอกจากนี้ คุณยังขยายแนวคิดนี้ไปยังพร็อพเพอร์ตี้ CSS background-image
ได้โดย
เพียงเพิ่มคลาสในเอลิเมนต์ <html>
:
<html class="<?php if ($saveData === true): ?>save-data<?php endif; ?>">
จากที่นี่ คุณสามารถกำหนดเป้าหมายคลาส save-data
ในองค์ประกอบ <html>
ใน
CSS เพื่อเปลี่ยนวิธีการแสดงรูปภาพ คุณส่งพื้นหลังความละเอียดต่ำได้
ลงในหน้าจอความละเอียดสูงดังที่แสดงในตัวอย่าง HTML ด้านบน หรือไม่
ทรัพยากรบางอย่างด้วย
ละเว้นภาพที่ไม่จําเป็น
เนื้อหารูปภาพบางอย่างบนเว็บเป็นสิ่งที่ไม่จำเป็น แม้ว่าภาพดังกล่าวสามารถ
สร้างคอนเทนต์ที่นอกเหนือจากเนื้อหาดี ๆ ก็อาจไม่เหมาะกับคนที่พยายามจะ
ใช้ประโยชน์จากแผนข้อมูลที่มีปริมาณจำกัด เครื่องมือที่อาจใช้งานง่ายที่สุด
ของ Save-Data
เราสามารถใช้โค้ดการตรวจจับ PHP จากก่อนหน้านี้และยกเว้น
มาร์กอัปรูปภาพที่ไม่จำเป็นทั้งหมด
<p>This paragraph is essential content. The image below may be humorous, but it's not critical to the content.</p>
<?php
if ($saveData === false) {
// Only send this image if `Save-Data` hasn't been detected.
?><img src="meme.jpg" alt="One does not simply consume data."><?php
}
เทคนิคนี้จะให้ผลที่เกิดขึ้นอย่างชัดเจนตามที่เห็นใน รูปด้านล่าง
แน่นอนว่าการข้ามรูปภาพไม่ได้มีสาเหตุเดียว นอกจากนี้คุณยังสามารถ
Save-Data
เลือกที่จะไม่ส่งทรัพยากรอื่นๆ ที่ไม่สำคัญ เช่น
แบบตัวพิมพ์
ละเว้นแบบอักษรเว็บที่ไม่จำเป็น
ขณะที่แบบอักษรเว็บมักจะไม่ค่อยคิดเป็นจำนวนทั้งหมดของหน้านั้น เพย์โหลด ในขณะที่รูปภาพมักจะเป็นที่นิยม พวกเขาไม่บริโภค ไม่มากนัก ข้อมูลด้วยเช่นกัน นอกจากนี้ วิธีที่เบราว์เซอร์ดึงข้อมูลและแสดงผลแบบอักษรมีความซับซ้อนมากกว่า ที่คุณอาจคิด ด้วยแนวคิดอย่าง FOIT FOUT และเบราว์เซอร์ การเรียนรู้ที่ทำให้เป็นการดำเนินการที่เข้าใจยาก
คุณอาจให้เหตุผลว่าคุณควรยกเว้นเว็บที่ไม่จำเป็นออกไป
สำหรับผู้ใช้ที่ต้องการประสบการณ์ของผู้ใช้ที่น้อยลง Save-Data
กำหนดให้เป็น
ที่ควรทำอย่างสมเหตุสมผล
ตัวอย่างเช่น สมมติว่าคุณใส่ Fira
Sans จาก Google
แบบอักษรในเว็บไซต์ Fira Sans ร่างกายของคุณยอดเยี่ยม
คัดลอกแบบอักษร แต่อาจไม่สำคัญมากนักสำหรับผู้ใช้ที่พยายามบันทึกข้อมูล โดยการเพิ่ม
คลาสของ save-data
ไปยังองค์ประกอบ <html>
เมื่อส่วนหัว Save-Data
เป็น
เราสามารถเขียนรูปแบบ
ที่เรียกแบบตัวพิมพ์ที่ไม่จำเป็นในตอนแรก
แต่จะเลือกไม่ใช้เมื่อมีส่วนหัว Save-Data
:
/* Opt into web fonts by default. */
p,
li {
font-family: 'Fira Sans', 'Arial', sans-serif;
}
/* Opt out of web fonts if the `save-Data` class is present. */
.save-data p,
.save-data li {
font-family: 'Arial', sans-serif;
}
หากใช้วิธีนี้ คุณสามารถปล่อยข้อมูลโค้ด <link>
จาก Google Fonts ไว้
เนื่องจากเบราว์เซอร์จะโหลดแหล่งข้อมูล CSS แบบคาดเดา (รวมถึง
) โดยใช้รูปแบบกับ DOM ก่อน จากนั้นตรวจสอบว่ามี HTML
จะเรียกใช้ทรัพยากรใดๆ ในสไตล์ชีต หากมีใครบางคนเกิดขึ้นภายใน
เมื่อเปิด Save-Data
Fira Sans จะไม่โหลดเนื่องจาก DOM ที่มีการจัดรูปแบบไม่เคย
เรียกใช้ Arial จะเข้ามาเริ่มทำงานแทน ถึงจะไม่ดีเท่ากับ Fira Sans แต่
ผู้ใช้ที่พยายามขยายแพ็กเกจอินเทอร์เน็ตอาจสะดวกมากกว่า
สรุป
ส่วนหัว Save-Data
ไม่ได้มีความต่างกันมากนัก ไม่ว่าจะเปิดหรือปิดอยู่ และ
แอปพลิเคชันมีภาระในการมอบประสบการณ์ที่เหมาะสมตาม
การตั้งค่า โดยไม่คำนึงถึงเหตุผล
เช่น ผู้ใช้บางรายอาจไม่อนุญาตให้ใช้โหมดประหยัดอินเทอร์เน็ตหากสงสัยว่ามี เนื้อหาหรือฟังก์ชันของแอปจะหายไป แม้ในการเชื่อมต่อที่ไม่เสถียร ในทางกลับกัน ผู้ใช้บางรายอาจเปิดใช้เครื่องมือนี้ หน้าเว็บที่มีขนาดเล็กและเรียบง่ายที่สุดเท่าที่จะเป็นไปได้ แม้ในสถานการณ์การเชื่อมต่อที่ดี แอปของคุณควรจะถือว่าผู้ใช้ต้องการพื้นที่เก็บข้อมูลแบบเต็มและไม่จำกัด จนกว่าคุณจะมีการแจ้งอย่างชัดเจนเป็นอย่างอื่นผ่านผู้ใช้ที่อาจไม่เหมาะสม การดำเนินการ
ในฐานะเจ้าของเว็บไซต์และนักพัฒนาเว็บ เรามารับความรับผิดชอบในการจัดการ เนื้อหาของเราเพื่อปรับปรุงประสบการณ์ของผู้ใช้สำหรับผู้ใช้ที่มีข้อมูลและค่าใช้จ่ายที่จำกัด
สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับ Save-Data
และตัวอย่างที่ยอดเยี่ยมซึ่งนำไปใช้ได้จริง โปรดดู
ผู้ใช้ Save Data