- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我所追求的是一个 PHP 脚本,它将提供存储在不同域中的 javascript 文件的本地副本,例如用于跟踪目的的 JS 文件,例如 Google Analytics,或者在我的例子中是 Wordpress Stats。
本意是在自己的里面添加如下:
mysite.com/somepath/wpstats.js.php?w=201145
(其中“w=year-week_number”的使用方式与 wordpress.com 的使用方式相同。原始统计 JS 文件的缓存有效期为一年 - 因此 JS 文件的更改频率永远不会超过每周一次)
在我的 wpstats.js.php
中,我想在 w=xx 更改时从 wordpress.com 下载正确的文件,否则我想从本地保存的副本中返回它。
我可以用一个名为“w_current”的内部变量来实现它,这样当新访问者在第二周进入网站时 w != w_current
就会触发新的抓取。问题是:如何防止当两个网站访问者在第二周第一次同时加载网站时可能出现的竞争条件/并行问题 [1]?
[1] 两个 apache 进程都评估 w != w_current
并开始两次下载(可能)新版本的 wpstats.js 文件,并且都尝试将其写入本地副本(例如 own_wpstats.js
)wpstats.js.php(在本地副本已存在的正常情况下)将包括:
if ($_GET["w"] == w_current) require("own_wpstats.js");
这样做的主要原因(性能可能是另一个原因)是因为 Wordpress.com Stats(通过 DOM)注入(inject)了一个来自第三方 quantserve.com 的附加 JS 跟踪文件。在我本地保存的“WP JS 文件”中,我将确保排除这个 quantserve.com 的东西,但这是一个单独的编程挑战,而不是我在这里尝试提出的问题。搜索“quantserve.com tracking cookie”会得到许多令人不适的结果。
最佳答案
我不会太多担心这样的竞争条件。 “最坏情况”是您下载文件两次。
但是如果您打算在数据库中对这些文件进行任何跟踪,那么防止重复下载会很简单。在开始下载之前,如果文件需要刷新,请立即检查数据库,将刷新记录到数据库,然后进行下载。给文件一个唯一的主键(site_url + file_name),更新前的第二次检查将失败。
关于php - 如何使用 PHP 保存和维护 javascript 文件的本地副本(考虑到并行性)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8225150/
我正在尝试解决 spoj 上的问题。显然,根据注释,输入行以 \r\n 结尾。我从之前的问题中了解到的关于 \r\n 的信息是它是 Windows 的东西。我想知道的是如何考虑它。目前我在 C++ 中
有大量对象。集合是动态的:对象可以随时添加或删除。我们称对象总数为 N。 每个对象都有两个属性:上次更新的质量 (M) 和时间 (T)。 每隔 X 分钟,应从中选择一小批进行处理,这会将它们的 T 更
我有一张带有免费赠品的注册表,但有人滥用它注册为 jo+1@gmail.com jo+2@gmail.com 有没有我可以在我的电子邮件记录上运行的标准算法来验证这种情况? 我可以在其中获取 jo@
我正在管理一个已建立的网站,该网站目前正在升级(完全重新更换),但我担心我会失去所有的 Google 索引(也就是说,会有很多页面在谷歌的索引中,它将不再存在于那个地方)。 上次我升级一个(不同的)网
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 6 个月前。 Improv
思考横向拿着 iPhone X。 由于安全区域看起来是对称的,所以安全区域的插入在左侧和右侧一样大,无论缺口在哪一侧。 假设我们希望将安全区域进一步延伸到没有凹口的那一侧的屏幕边缘。有人对此有好的方法
Haskell 通常被视为纯函数式语言的示例。鉴于 System.IO.Unsafe.unsafePerformIO 的存在,这如何合理? 编辑:我认为“纯功能”意味着不可能将不纯的代码引入到程序的功
我创建了两个 HashMap ,我想在同一个 for 循环中迭代它们。 HashMap hashmapA = new HashMap<>(); HashMap hashmapB = new HashM
在阅读了 Venkat Subramaniam 所著的《Java 函数式编程》第 106-108 页中的“昂贵资源的延迟初始化”之后,发现很难理解此代码片段的技巧 我的理解:变量heavy上课Hold
我有一个模型 A,它包含一个通用外键关系,并限制选择其他 3 个模型(将它们视为 B、C和 D) 在同一个应用程序中。我知道我们不能使用 filter 或 get 或任何其他查询集操作的通用外键的局限
我正计划制作一个 最终 使用 Cassandra 的网络应用程序.但现在我没有它,也没有服务器来运行它,我想从使用 MySQL 开始。 问题是,是否有可能以这样一种方式构建数据和查询,以便稍后将其移植
所以我刚开始,学习不同的教程并通过征服基础知识来挑战自己。我知道这对大多数人来说可能看起来很低调,但要温和一点,我对此有点陌生。 我尝试使用媒体查询 4,例如 @media (30em <= widt
我需要遍历 .csv,直到名为“seguir”的 bool 值变为 False。问题是 takewhile 丢弃了最后一次迭代和值,我需要它,因为该行中的 .csv 值与我的问题相关。 for lin
我试试这个: Stopwatch timer = new Stopwatch(); timer.Start(); for (i = 0; i < 100; i++) { //do here s
我看过这个讨论 map 的帖子:Map function in MATLAB? 因此,我想知道是否有类似的方法来考虑索引。比如如果我想做类似 (x_i)^i 的事情。 非常感谢! 最佳答案 一个例子:
异步 docs阅读: Most asyncio objects are not thread safe. You should only worry if you access objects o
背景 假设我有一个 Google map View ,另一个 View 在它上面,覆盖了它的一部分,隐藏了 map 的一些内容。 问题 我需要制作 map 的“相机”,聚焦并在坐标上有一个标记,但让它
有什么方法可以找出目录占用的原始 HDFS 空间。据我所知 hdfs dfs -du -s/dir 显示 /dir 大小,不考虑内部文件的复制。 最佳答案 运行命令 hadoop fsck/dir 并
我正在用 Java 编写程序,我需要确定某个日期是否是周末。然而,我需要考虑到在不同的国家周末是在不同的日子,例如在以色列是周五和周六,而在一些伊斯兰国家是周四和周五。更多详情可以查看this Wik
我将HttpRequestBase包装为HttpRequestMessage,这要求将所有 header 都复制过来。但是,由于HttpRequestMessage特定于哪些 header 应用于请求
我是一名优秀的程序员,十分优秀!