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

3
เหตุใด prefetch_related () ของ django จึงใช้ได้เฉพาะกับ all () และไม่กรอง ()
สมมติว่าฉันมีโมเดลนี้: class PhotoAlbum(models.Model): title = models.CharField(max_length=128) author = models.CharField(max_length=128) class Photo(models.Model): album = models.ForeignKey('PhotoAlbum') format = models.IntegerField() ตอนนี้ถ้าฉันต้องการดูรูปภาพส่วนย่อยในชุดย่อยของอัลบั้มอย่างมีประสิทธิภาพ ฉันทำสิ่งนี้: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: somePhotos = a.photo_set.all() สิ่งนี้ทำเพียงสองแบบสอบถามเท่านั้นซึ่งเป็นสิ่งที่ฉันคาดหวัง (รายการหนึ่งจะได้รับอัลบั้มจากนั้นหนึ่งเช่น `` เลือก * ในรูปภาพ WHERE photoalbum_id IN () ทุกอย่างยอดเยี่ยมมาก แต่ถ้าฉันทำสิ่งนี้: someAlbums = PhotoAlbum.objects.filter(author="Davey Jones").prefetch_related("photo_set") for a in someAlbums: …
90 django  orm  filter  prefetch 

3
ใน webpack ฉันจะนำเข้าสคริปต์โดยไม่ประเมินได้อย่างไร
ฉันเพิ่งทำงานกับการเพิ่มประสิทธิภาพเว็บไซต์บางอย่างและฉันเริ่มใช้การแยกรหัสใน webpack โดยใช้คำสั่งนำเข้าเช่นนี้: import(/* webpackChunkName: 'pageB-chunk' */ './pageB') ซึ่งสร้างpageB-chunk.jsอย่างถูกต้องตอนนี้สมมติว่าฉันต้องการดึงข้อมูลอันนี้ใน pageA ฉันสามารถทำได้โดยเพิ่มคำสั่งนี้ในหน้า A: import(/* webpackChunkName: 'pageB-chunk' */ /* webpackPrefetch: true */ './pageB') ซึ่งจะส่งผลให้ <link rel="prefetch" href="pageB-chunk.js"> ถูกผนวกเข้ากับส่วนหัวของ HTML จากนั้นเบราว์เซอร์จะดึงข้อมูลล่วงหน้าจนดีมาก ปัญหาคือคำแถลงการนำเข้าที่ฉันใช้ที่นี่ไม่เพียง แต่ดึงไฟล์ js ล่วงหน้า แต่ยังประเมินไฟล์ js หมายความว่ารหัสของไฟล์ js นั้นถูกวิเคราะห์ & คอมไพล์เป็นไบต์รหัสระดับบนสุดของ JS นั้นจะถูกดำเนินการ นี่เป็นการดำเนินการที่ใช้เวลานานมากบนอุปกรณ์พกพาและฉันต้องการปรับให้เหมาะสมฉันต้องการเฉพาะส่วนprefetchเท่านั้นฉันไม่ต้องการชิ้นส่วนประเมิน & ดำเนินการเพราะต่อมาเมื่อมีการโต้ตอบของผู้ใช้เกิดขึ้นฉันจะเริ่มการแยกวิเคราะห์ & ประเมินตนเอง ↑↑↑↑↑↑↑↑ฉันต้องการทริกเกอร์สองขั้นตอนแรกเท่านั้นภาพมาจากhttps://calendar.perfplanet.com/2011/lazy-evaluation-of-commonjs-modules/ ↑↑↑↑↑↑↑ ↑↑ แน่ใจว่าฉันสามารถทำได้โดยการเพิ่มลิงค์ …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.