【问题标题】:Mac doesn't update fast when programming PHP编写 PHP 时 Mac 不会快速更新
【发布时间】:2023-03-08 12:57:01
【问题描述】:

我有这个奇怪的问题,我不知道如何解决它。

示例:我在页面顶部的代码中添加了var_dump('test')。只是为了编辑一些东西。 Alt-tab 到 chrome,cmd-R 刷新。

var_dump('test') 不存在。再次使用 Cmd-R。还是没有。

然后我等待一分钟,然后刷新......突然它就在那里。

基本上:我总是会看到代码更改,但不会立即看到。

我在 PhpStorm 和 Netbeans 中遇到了这个问题,所以这可能不是 IDE 问题。

编辑:我也在不同的浏览器上试过这个,他们都有这个,所以这不是浏览器相关的问题。

以前有人遇到过这个问题吗?有谁知道解决这个问题? 如果我必须等待看到我编辑的代码上线,那么高效工作真的很困难......

编辑: 我正在我的本地主机上工作。服务器设置使用 MAMP。

请求标头:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Encoding:gzip,deflate,sdch
Accept-Language:nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4
Cache-Control:no-cache
Connection:keep-alive
Cookie:projekktorplayertracking_prkusruuid=D1A39803-4DE3-4C0B-B199-6650CF0F8DE5; Akamai_AnalyticsMetrics_clientId=C355983152DF60151A0C6375798CD52E8F09B995; __atuvc=4%7C47%2C0%7C48%2C0%7C49%2C17%7C50%2C47%7C51; PHPSESSID=885c62f543097973d17820dca7b3a526; __utma=172339134.2012691863.1384502289.1387377512.1387442224.41; __utmb=172339134.1.10.1387442224; __utmc=172339134; __utmz=172339134.1384502289.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Host:local.sos
Pragma:no-cache
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36

响应标题:

Connection:Keep-Alive
Content-Length:681
Content-Type:text/html
Date:Thu, 19 Dec 2013 09:00:54 GMT
Keep-Alive:timeout=5, max=99
Server:Apache/2.2.25 (Unix) mod_ssl/2.2.25 OpenSSL/0.9.8y DAV/2 PHP/5.5.3
X-Pad:avoid browser bug
X-Powered-By:PHP/5.5.3

编辑: 我在 MAMP 的设置中乱七八糟。我的 PHP 版本是 5.5.3,但是我无法设置任何 PHP 扩展。

当我将 PHP 版本设置为 5.2.17(我唯一的另一个选择)时,我能够将 Cache 设置为 XCache。

所以...现在我的页面在立即重新加载时始终是最新的。

感谢任何回复并帮助我的人!

【问题讨论】:

  • 当你尝试 CTRL+F5(或 CMD+F5)时会发生什么
  • 你在本地工作吗?使用的网络服务器是什么?哪个浏览器?
  • 多么尴尬 O_o 我想在后台有某种时间机器的恶作剧?或者它可能是你的服务器配置? (但不太可能)
  • @OlivierH 它确实声明了 Chrome - 其中,即使在隐身模式下它也会这样做吗?
  • @Marcel 他在这里不是在谈论 Windows。

标签: php


【解决方案1】:

我在 IE 和 Chrome 中使用 .php 和 .less 文件在本地工作时遇到了类似的问题。某些原因导致 css 文件被缓存或 cookie 或其他原因,并且不会显示对 .less 文件所做的更改。我们通过创建时间戳的 php 变量然后将变量附加到文件名和源链接的末尾来修复它。浏览器将其视为新文件并始终加载它。

我现在没有执行此操作的实际代码(我在家),但明天上班时会查找它。

显然,这与您遇到的问题不同,但我认为它可能会为您提供研究问题的新方向。

【讨论】:

  • 与LESS、CSS、图片等链接文件相关;那是缓存。 PHP 文件不会被缓存,每次浏览器访问它们时它们都会重新运行(除非 AJAX 专门缓存响应,在这种情况下,它与资产缓存有点不同)
  • 我没有说 PHP 文件被缓存了。我说 CSS 文件正在被缓存,并通过使用 PHP 更改 Css 文件和链接的文件名来解决这个问题。
  • 这仍然无关紧要,因为 OP 正在谈论 PHP 文件需要多次刷新才能更改。
【解决方案2】:

不确定 NetBeans,但 PhpStorm 会在您键入时更新文件(无需显式保存)。但是,自动保存去抖动取决于操作系统。 Mac 可能会等待文件更改较慢以刷新其内容。我不确定如何在 OS X 上执行此操作,因为我不记得该功能的名称,但另一种解决方法是使用 Command+S 显式保存文件。

【讨论】:

  • 我实际上总是用 Cmd-S 保存,所以这行不通:/
【解决方案3】:

有三种可能的原因(我能想到):

  1. 您的浏览器正在缓存文件,在开发站点上您可以禁用缓存(例如,在 Chrome 中按 F12 并单击右下角的齿轮,选中复选框以在开发人员工具打开时禁用缓存 - 保持打开状态开发区)
  2. 您与服务器的连接滞后,这可能是由于您的 IDE 或您的连接延迟上传造成的。您可以通过打开 SSH 连接来测试这一点,并在保存后检查修改时间(例如,在文件目录中反复按 ls -lawatch -n 1 ls -la
  3. 对于某些应用程序,可能存在另一种形式的缓存。这可以是 APC 或 Opcache。为了使这成为可能的原因,首先排除上述情况可能是明智的。此步骤要求您分析服务器发送的标头,这些标头在 devtools 的 Network 选项卡上可用(如果是 chrome)

【讨论】:

  • 我尝试过禁用 Chrome 中的缓存和硬刷新(Chrome 和 Firefox)。不工作。所以它与浏览器无关......
【解决方案4】:

这是解决方案:

我在搞乱 MAMP 的设置。我的 PHP 版本是 5.5.3,但是我无法设置任何 PHP 扩展。

当我将 PHP 版本设置为 5.2.17(我唯一的另一个选择)时,我能够将 Cache 设置为 XCache。

然后它起作用了。

但后来我找到了this thread

 In your MAMP Dir go to : /bin/php/php5.5.3/conf/php.ini
    And comment the Opcahe lines:



 [OPcache]
    ;zend_extension="/Applications/MAMP/bin/php/php5.5.3/lib/php/extensions/no-debug-non-zts-20121212/opcache.so"
    ;  opcache.memory_consumption=128
    ;  opcache.interned_strings_buffer=8
    ;  opcache.max_accelerated_files=4000
    ;  opcache.revalidate_freq=60
    ;  opcache.fast_shutdown=1
    ;  opcache.enable_cli=1

现在我正在使用 PHP 5.5.3 进行编程,我的页面会立即更新。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-12
    • 2015-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2012-10-29
    • 2015-01-24
    相关资源
    最近更新 更多