คำถามติดแท็ก pushstate

13
S3 เว็บไซต์คงที่โฮสต์เส้นทางทั้งหมดเส้นทางไปยัง Index.html
ฉันใช้ S3 เพื่อโฮสต์แอป javascript ที่จะใช้ HTML5 pushStates ปัญหาคือถ้าผู้ใช้บุ๊กมาร์ก URL ใด ๆ ก็จะไม่สามารถแก้ไขอะไรได้ สิ่งที่ฉันต้องการคือความสามารถในการรับคำขอ url ทั้งหมดและแสดงรูต index.html ในที่ฝากข้อมูล S3 ของฉันแทนที่จะเปลี่ยนเส้นทางเต็มรูปแบบ จากนั้นแอปพลิเคชันจาวาสคริปต์ของฉันสามารถแยก URL และแสดงหน้าเว็บที่เหมาะสม มีวิธีใดที่จะบอกให้ S3 ให้บริการ index.html สำหรับคำขอ URL ทั้งหมดแทนที่จะทำการเปลี่ยนเส้นทาง? นี้จะคล้ายกับการตั้งค่า Apache เพื่อจัดการการร้องขอเข้ามาทั้งหมดโดยการให้บริการขึ้น index.html เดียวในตัวอย่างนี้: https://stackoverflow.com/a/10647521/1762614 ฉันต้องการหลีกเลี่ยงการเรียกใช้เว็บเซิร์ฟเวอร์เพียงเพื่อจัดการเส้นทางเหล่านี้ การทำทุกอย่างจาก S3 นั้นน่าสนใจมาก

9
กวดวิชาที่ดีสำหรับการใช้ API ประวัติ HTML5 (Pushstate?) [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน5 ปีที่ผ่านมา ปรับปรุงคำถามนี้ ฉันกำลังมองหาการใช้ HTML5 History API เพื่อแก้ไขปัญหาการเชื่อมโยงเชิงลึกกับเนื้อหาที่โหลด AJAX แต่ฉันพยายามดิ้นรนเพื่อหลีกเลี่ยงปัญหา มีใครรู้แหล่งข้อมูลที่ดีบ้างไหม? ฉันต้องการใช้สิ่งนี้เนื่องจากเป็นวิธีที่ดีในการอนุญาตให้ผู้ที่ส่งลิงก์อาจไม่เปิด JS การแก้ปัญหาหลายอย่างล้มเหลวเมื่อผู้ที่มี JS ส่งลิงค์ถึงบุคคลที่ไม่มี การวิจัยเริ่มต้นของฉันดูเหมือนจะชี้ไปที่ History API ภายใน JS และวิธี pushState http://html5demos.com/history

13
จะรับการแจ้งเตือนเกี่ยวกับการเปลี่ยนแปลงของประวัติผ่าน history.pushState ได้อย่างไร?
ดังนั้นตอนนี้ที่ HTML5 แนะนำhistory.pushStateให้เปลี่ยนประวัติเบราว์เซอร์เว็บไซต์เริ่มใช้สิ่งนี้ร่วมกับ Ajax แทนที่จะเปลี่ยนตัวระบุส่วนของ URL onhashchangeน่าเศร้าที่ว่าหมายความว่าสายที่ไม่สามารถตรวจสอบอีกต่อไปโดย คำถามของฉันคือ:มีวิธีที่เชื่อถือได้ (แฮก?;)) เพื่อตรวจสอบเมื่อเว็บไซต์ใช้history.pushState? ข้อมูลจำเพาะไม่ได้ระบุอะไรเกี่ยวกับเหตุการณ์ที่เกิดขึ้น (อย่างน้อยฉันก็ไม่พบอะไรเลย) ฉันพยายามสร้างซุ้มและแทนที่window.historyด้วยวัตถุ JavaScript ของตัวเอง แต่มันก็ไม่มีผลอะไรเลย คำอธิบายเพิ่มเติม:ฉันกำลังพัฒนาโปรแกรมเสริมของ Firefox ที่ต้องการตรวจจับการเปลี่ยนแปลงเหล่านี้และดำเนินการตามนั้น ฉันรู้ว่ามีคำถามคล้ายกันเมื่อไม่กี่วันที่ผ่านมาที่ถามว่าการฟังเหตุการณ์ DOMบางอย่างจะมีประสิทธิภาพหรือไม่ แต่ฉันก็ไม่เชื่อใจเพราะเหตุการณ์เหล่านี้สามารถสร้างขึ้นได้ด้วยเหตุผลหลายประการ ปรับปรุง: นี่คือ jsfiddle (ใช้ Firefox 4 หรือ Chrome 8) ที่แสดงว่าonpopstateไม่ถูกเรียกเมื่อpushStateมีการเรียก (หรือฉันทำสิ่งผิดปกติหรือไม่รู้สึกฟรีเพื่อปรับปรุง!) อัปเดต 2: ปัญหา (ด้าน) อีกอย่างwindow.locationคือไม่ได้รับการอัปเดตเมื่อใช้pushState(แต่ฉันได้อ่านเกี่ยวกับสิ่งนี้ที่นี่แล้วดังนั้นฉันคิดว่า)

4
Internet Explorer รองรับ pushState และ replaceState หรือไม่
ไม่มีใครรู้ว่า Internet Explorer รองรับhistory.pushState()และhistory.replaceState()วิธีการจัดการประวัติเบราว์เซอร์หรือไม่? เมื่อพิจารณาถึงสิ่งเหล่านี้กำลังถูกนำมาใช้ใน Firefox 4 ฉันไม่ได้กลั้นลมหายใจ แต่ใครจะรู้ว่าพวกเขากำลังเข้ามาใน IE9 หรือไม่?

8
เว็บไซต์ JS และ SEO แบบ“ หน้าเดียว”
มีเครื่องมือเจ๋ง ๆ มากมายสำหรับการสร้างเว็บไซต์จาวาสคริปต์แบบ "หน้าเดียว" ที่มีประสิทธิภาพในปัจจุบัน ในความคิดของฉันสิ่งนี้ถูกต้องแล้วโดยปล่อยให้เซิร์ฟเวอร์ทำหน้าที่เป็น API (และไม่มีอะไรเพิ่มเติม) และให้ลูกค้าจัดการสิ่งที่สร้าง HTML ทั้งหมด ปัญหาของ "รูปแบบ" นี้คือการขาดการสนับสนุนเครื่องมือค้นหา ฉันสามารถคิดถึงวิธีแก้ปัญหาสองข้อ: เมื่อผู้ใช้เข้าสู่เว็บไซต์ให้เซิร์ฟเวอร์แสดงผลหน้าเว็บเหมือนกับที่ลูกค้าทำตามการนำทาง ดังนั้นถ้าฉันไปhttp://example.com/my_pathที่เซิร์ฟเวอร์โดยตรงจะทำให้สิ่งเดียวกันกับไคลเอนต์ถ้าฉัน/my_pathผ่าน pushState ให้เซิร์ฟเวอร์จัดทำเว็บไซต์พิเศษเฉพาะสำหรับบอตของเครื่องมือค้นหา หากผู้ใช้ทั่วไปเข้าชมhttp://example.com/my_pathเซิร์ฟเวอร์ควรให้เว็บไซต์เวอร์ชันใหญ่แก่ JavaScript แต่ถ้าบอตของ Google เข้าชมเซิร์ฟเวอร์ควรให้ HTML ที่น้อยที่สุดพร้อมเนื้อหาที่ฉันต้องการให้ Google จัดทำดัชนี วิธีแรกที่จะกล่าวถึงต่อไปที่นี่ ฉันทำงานเกี่ยวกับเว็บไซต์ที่ทำสิ่งนี้และมันก็ไม่ได้เป็นประสบการณ์ที่ดีนัก ไม่ใช่ DRY และในกรณีของฉันฉันต้องใช้เครื่องมือแม่แบบที่แตกต่างกันสองแบบสำหรับไคลเอนต์และเซิร์ฟเวอร์ ฉันคิดว่าฉันได้เห็นโซลูชันที่สองสำหรับเว็บไซต์ Flash ที่ดีแล้ว ฉันชอบวิธีนี้มากกว่าวิธีแรกและด้วยเครื่องมือที่เหมาะสมบนเซิร์ฟเวอร์มันสามารถทำได้ค่อนข้างลำบาก ดังนั้นสิ่งที่ฉันสงสัยจริงๆคือต่อไปนี้: คุณนึกถึงทางออกที่ดีกว่านี้ได้ไหม? อะไรคือข้อเสียของโซลูชันที่สอง? หาก Google พบว่าฉันไม่ได้ให้บริการเนื้อหาเดียวกันกับ bot ของ Google ในฐานะผู้ใช้ทั่วไปฉันจะต้องถูกลงโทษในผลการค้นหาหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.