标签: prefetch

如何使用 django prefetch_related 在 mptt 树上预取孩子的父母?

比如说,我有一个产品实例。产品实例链接到第 4 级子类别。如果我只想获取根类别和第 4 级子类别,下面的查询足以以最少的数据库查询获取数据:

Product.objects.filter(active=True).prefetch_related('category__root',
                                                     'category')
Run Code Online (Sandbox Code Playgroud)

如果我必须联系该产品类别的父级并get_ancestors()为此使用方法,则会发生近三倍的模式数据库查询。

如果我使用get_ancestors()方法编写如下查询,则数据库查询保持低位。

Product.objects.filter(active=True).prefetch_related(
    'category__root',
    'category', 
    'category__parent',
    'category__parent__parent',
    'category__parent__parent__parent',
    'category__parent__parent__parent__parent')
Run Code Online (Sandbox Code Playgroud)

但是当深度级别未知时,此查询无效。有没有办法在上面的查询中动态预取父母?

django prefetch mptt

7
推荐指数
1
解决办法
412
查看次数

使用HTML5预取的危险?

好的,所以它不是一个巨大的担忧,因为它只有少数浏览器支持:

  • Mozilla Firefox:支持
  • 谷歌浏览器:从版本13开始支持(使用备用语法)
  • Safari:目前不支持Internet
  • 资源管理器:目前不支持

然而,预取让我抽搐.如果用户登陆您的页面并退回到另一个站点,您是否支付了他们访问预取链接的带宽?

是否存在开发人员预取页面上的每个链接的风险,这反过来会使网站对用户的体验变慢?

看起来它可以改变分析.人们会通过预取强制页面浏览到用户吗?

安全性,您不会知道正在预取的页面.它可以预取恶意文件吗?

对于使用有限的移动用户来说,所有这些预取是否会让人痛苦?

html5 prefetch

6
推荐指数
1
解决办法
3899
查看次数

软件在x86上跨页边界预取

我的理解是硬件预取永远不会跨越页面边界.我想知道软件预取是否有相同的限制,即我可以使用软件预取来避免未来的TLB未命中.从搜索周围来看,它似乎是可能的,但我在文档中找不到任何确定的内容,因此引用会很好.

我对Nehalem,Sandy Bridge和Westmere特别感兴趣.

x86 prefetch tlb nehalem

6
推荐指数
1
解决办法
1182
查看次数

typeahead.js预取问题

我在Google App Engine项目中使用了typeahead.js,并且在使用预取时遇到了问题.

当我使用local时,typeahead工作正常但是如果我将相同的数据集复制到json文件并使用prefetch,则typeahead不起作用,即不显示任何建议.

这是我使用local的代码版本:

<!doctype html>
<html>
<head>
    <meta charset="utf-8" />
    <title>Demo</title>
</head>
<body>
    <div><input type="text" name="typeahead-example" placeholder="Type here" class="typeahead-example"></div>
    <script src="./js/jquery-1.10.2.js" type="text/javascript"></script>
    <script src="./js/hogan.js" type="text/javascript"></script>
    <script src="./js/typeahead.min.js" type="text/javascript"></script>
    <script>
        $(document).ready(function(){
                $('input.typeahead-example').typeahead({
                  name: 'example',
                  local: [{value: 'Abc Def', tokens: ['Abc', 'Def'], name: 'random1', val2: 'A', val3: 'B'},
                    {value: 'Def Ghi', tokens: ['Def', 'Ghi'], name: 'random2', val2: 'C', val3: 'D'},
                    {value: 'Ghi Jkl', tokens: ['Ghi', 'Jkl'], name: 'random3', val2: 'E', val3: 'F'},
                    {value: 'Jkl Mno', tokens: ['Jkl', 'Mno'], name: 'random4', …
Run Code Online (Sandbox Code Playgroud)

jquery prefetch typeahead typeahead.js

6
推荐指数
2
解决办法
1万
查看次数

Safari浏览器的预取解决方案?

根据此链接预取,预取仅适用于特定浏览器.不幸的是,我需要它主要在移动设备上工作.

任何人都有一个解决方案如何预加载,预取,缓存页面,以便它适用于iOS?(苹果浏览器)

html safari prefetch

6
推荐指数
1
解决办法
997
查看次数

Django prefetch_related 优化查询但仍然很慢

我在prefetch_related具有 5 m2m 字段的模型上遇到了一些严重的性能问题,并且我正在预取一些嵌套的 m2m 字段。

class TaskModelManager(models.Manager):
    def get_queryset(self):
        return super(TaskModelManager, self).get_queryset().exclude(internalStatus=2).prefetch_related("parent", "takes", "takes__flags", "assignedUser", "assignedUser__flags", "asset", "asset__flags", "status", "approvalWorkflow", "viewers", "requires", "linkedTasks", "activities")


class Task(models.Model):
    uuid = models.UUIDField(primary_key=True, default=genOptimUUID, editable=False)
    internalStatus = models.IntegerField(default=0)
    parent = models.ForeignKey("self", blank=True, null=True, related_name="childs")
    name = models.CharField(max_length=45)
    taskType = models.ForeignKey("TaskType", null=True)
    priority = models.IntegerField()
    startDate = models.DateTimeField()
    endDate = models.DateTimeField()
    status = models.ForeignKey("ProgressionStatus")
    assignedUser = models.ForeignKey("Asset", related_name="tasksAssigned")
    asset = models.ForeignKey("Asset", related_name="tasksSubject")
    viewers = models.ManyToManyField("Asset", blank=True, related_name="followedTasks")
    step = models.ForeignKey("Step", blank=True, null=True, …
Run Code Online (Sandbox Code Playgroud)

python django postgresql prefetch

6
推荐指数
1
解决办法
3560
查看次数

如何使用 Django 查询集预取@property?

我想将模型属性预取到 Django 中的查询集。有没有办法做到这一点?

以下是三个模型:

class Place(models.Model):
    name = models.CharField(max_length=200, blank=True)
    @property
    def bestpicurl(self):
        try:
            return self.placebestpic.picture.file.url
        except:
            return None

class PlaceBestPic(models.Model):
    place = models.OneToOneField(Place)
    picture = models.ForeignKey(Picture, on_delete=models.CASCADE)

class Picture(models.Model):
    file = ImageField(max_length=500, upload_to="/images/")
Run Code Online (Sandbox Code Playgroud)

我需要类似的东西:

qs = Place.objects.all().select_related('bestpicurl')
Run Code Online (Sandbox Code Playgroud)

任何线索如何做到这一点?谢谢!

python django prefetch django-select-related

6
推荐指数
1
解决办法
3217
查看次数

如何在 django 中基于父查询集创建预取查询集

这是一个场景,一个包含多个投标的项目模型。

Class Project(models.Model):
    user = models.ForeignKey()

Class Bid(models.Model):
    project = models.ForeignKey(Project, related_name='bids')
Run Code Online (Sandbox Code Playgroud)

当我们查询项目时,我们想要预取项目的投标。

Project.objects.filter(whatever condition).prefetch_related(
     Prefetch('bids', queryset=Bid.objects.all())
)
Run Code Online (Sandbox Code Playgroud)

这里我们只想获取属于过滤项目的投标,而不是所有投标,我们如何指定呢?我期待类似的事情

queryset=Bid.objects.filter(project=project?)... 
Run Code Online (Sandbox Code Playgroud)

谢谢。

django prefetch django-queryset

6
推荐指数
1
解决办法
3889
查看次数

无需在 Google Cloud 中下载即可读取非常大的 blob(流式传输?)

请帮忙!

[+] 我有什么: 每个桶里都有很多斑点。Blob 的大小各不相同,从小于千字节到大量千兆字节。

[+] 我想做的事情: 我需要能够在这些 blob 中传输数据(比如大小为 1024 的缓冲区或类似的东西),或者在 Python 中按一定大小的块读取它们。关键是我不认为我可以只执行bucket.get_blob(),因为如果blob是TeraByte那么我将无法将它保存在物理内存中。

[+] 我真正想做的事情: 解析 blob 内的信息以识别关键字

[+] 我读过的内容: 很多关于如何分块写入谷歌云,然后使用 compose 将其拼接在一起的文档(一点帮助都没有)

很多关于java的预取函数的文档(需要是python)

谷歌云API

如果有人能指出我正确的方向,我将非常感激!谢谢

python stream prefetch google-cloud-platform

6
推荐指数
1
解决办法
3036
查看次数

如何使用 Vue CLI 4.3 默认禁用链接(异步模块)预取/预加载?

如何在动态路由导入中禁用rel="prefetch"?

我正在使用 @vue/cli 4.3.1 和 Webpack 4.43.0,尝试禁用预取:

在route.js中

const Registration = () => import(  /* webpackPrefetch: false */
    /* webpackChunkName: "registration" */ '../modules/Popup/Registration.vue')
Run Code Online (Sandbox Code Playgroud)

尝试在 vue.config.js 中配置,但没有帮助

chainWebpack: config => {
  config.plugins.delete('prefetch')
  config.plugins.delete('prefetch-index') // or
  config.plugins.delete('preload')
}
Run Code Online (Sandbox Code Playgroud)

但无论如何都有

<link rel="prefetch" ....>
Run Code Online (Sandbox Code Playgroud)

javascript prefetch webpack vue-cli vue-cli-4

6
推荐指数
1
解决办法
6128
查看次数