javascript - Drupal 随机加载旧版本的脚本

标签 javascript drupal drupal-6

在 drupal 6 中,我编写了一个模块,该模块输出一些 html,我使用 hook_block 在 block 中显示这些 html。

有一个 js 文件,我只想在该 block 加载时加载,所以我在 hook_block 中使用 drupal_add_js() 。

除了这个问题之外,一切都正常:当您刷新页面时(无论您是否同时清除缓存),通常会加载旧版本的脚本。新旧版本的出现看似随机。

我该如何确保加载正确的版本?谢谢。

编辑:我通过主题的 .info 文件加载的样式表之一正在执行相同的操作 - 正在加载它的随机版本。所以它看起来像是一个与模块或 block 无关的一般问题。

最佳答案

直到您对 JavaScript 文件感到满意为止,以便可以将其锁定并在缓存中使用,请使用 drupal_add_js 的“defer”和“cache”参数。

在管理>>性能中,您会发现包含 js 和 css 的指令 - 如果它们被停用,则由 drupal_add_* 添加的每个文件都会发出一个请求。例如,如果 js 将 preprocess 设置为 true,则 drupal_add_js 添加的所有 .info javascript 和脚本将缝合在一起:一个优化的深度缓存脚本

<7.0

drupal_add_js($data = NULL, $type = 'module', $scope = 'header', $defer = FALSE, $cache = TRUE, $preprocess = TRUE)

7.0>

drupal_add_js($data = NULL, $options = NULL)

在您的情况下,如果您正在开发脚本或需要在每次加载时推送一个新脚本,则在所有情况下都在 $cache$preprocess 下使用 false,因此加载“main.js”看起来像:

drupal_add_js(base_path() . '/sites/default/files/myjs/main.js', 
     'core', 
     'header', 
     false, 
     false, 
     false
);

在 v7+ 中,func argv[1-X] 会简单地放在一个关联数组中,如 $options, see API

关于javascript - Drupal 随机加载旧版本的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12156007/

相关文章:

javascript - 为可放置事件添加延迟

javascript - isnan 函数接受点

php - 无法在 drupal 7 中添加图像字段

mysql - 安装 Drupal 7 时出错

drupal - 匿名用户 : You are not authorized to access this page. 权限正常

javascript - Highcharts |图表缩放和跨度 |使用 LMB 进行缩放,使用人民币进行跨度

drupal - 将字段文本转换为列表(文本)drupal 7

php - Drupal 表单重定向到片段

drupal - 对用户权限的更改不保存

php - 不想刷新并保留最后插入的值