具有 30k 元素分类法的 Drupal 7 Views 中的公开过滤器花费的时间太长
Exposed filter in Views for Drupal 7 with taxonomy of 30k elements takes too long
我在 Drupal 7 中的视图中公开了一个分类过滤器,其中包含 4 个分层级别的 30k 个元素,加载页面大约需要 4-7 分钟。
我将它们公开为具有层次结构的列表,因此我尝试使用 hook_form_alter 通过取消设置来隐藏没有关联节点的分类元素,但这没有用,因为我不希望它们加载开头。
所以我通过使用过滤器尝试了 "Hierarchical Select" 和 "Simple hierarchical select",但仍然需要 4-7 分钟才能加载页面,因为无论如何它都会加载表单数组中的所有元素。
出于好奇,我打印了 php 整个词汇表(没有 Drupal 函数),这大约需要 5 秒,为什么 Drupal 这样做这么慢?
我搜索了另一个能够不加载不需要的选项的钩子,但没有给我带来任何结果,我还能尝试什么?
我找到了解决办法:
我已将过滤器公开为自动完成功能,并且为了区分级别,我覆盖了 hook_menu
中响应的默认页面
首先,取消设置默认页面
取消设置($items['admin/views/ajax/autocomplete/taxonomy/%/%']);
然后使用我的自定义函数重新创建,其中 returns 一个 json 带有值键和我的自定义标签
我在 Drupal 7 中的视图中公开了一个分类过滤器,其中包含 4 个分层级别的 30k 个元素,加载页面大约需要 4-7 分钟。
我将它们公开为具有层次结构的列表,因此我尝试使用 hook_form_alter 通过取消设置来隐藏没有关联节点的分类元素,但这没有用,因为我不希望它们加载开头。
所以我通过使用过滤器尝试了 "Hierarchical Select" 和 "Simple hierarchical select",但仍然需要 4-7 分钟才能加载页面,因为无论如何它都会加载表单数组中的所有元素。
出于好奇,我打印了 php 整个词汇表(没有 Drupal 函数),这大约需要 5 秒,为什么 Drupal 这样做这么慢?
我搜索了另一个能够不加载不需要的选项的钩子,但没有给我带来任何结果,我还能尝试什么?
我找到了解决办法: 我已将过滤器公开为自动完成功能,并且为了区分级别,我覆盖了 hook_menu
中响应的默认页面首先,取消设置默认页面 取消设置($items['admin/views/ajax/autocomplete/taxonomy/%/%']);
然后使用我的自定义函数重新创建,其中 returns 一个 json 带有值键和我的自定义标签