- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在这个页面上运行了谷歌的 PageSpeed 工具:
http://classifieds.your-adrenaline-fix.com/detail.php?fatherID=10&ListingID=7&TypeID=42
结果表明我应该指定一个缓存验证器 - Last-Modified 或 ETag header 。
我已经彻底阅读了这个:
https://developers.google.com/speed/docs/best-practices/caching#LeverageProxyCaching
但我不知道该怎么办。
我确实知道我遇到的问题(通过 Google 的 PageSpeed 工具出现)源于以下显示 Google map 的代码,但此代码是这里有人帮助我的代码。 (尽管我还没有学到任何关于 PDO 的知识,也不太了解代码)
我希望有人可以查看下面提供的代码,让我知道所有看起来都是正确的,并与我分享如何指定缓存验证器以根据 Google 的 Page Speed 建议改进页面。
任何帮助都将不胜感激,我提前感谢大家。
斯图尔特·K
编辑:此外,我在 .htaccess 中有以下代码:(以下是 Map 代码)
<IfModule mod_expires.c>
# Enable expirations
ExpiresActive On
# Default directive
ExpiresDefault "access plus 1 year"
# Favicon
ExpiresByType image/x-icon "access plus 1 year"
# Images
ExpiresByType image/gif "access plus 1 year"
ExpiresByType image/png "access plus 1 year"
ExpiresByType image/jpg "access plus 1 year"
ExpiresByType image/jpeg "access plus 1 year"
# CSS
ExpiresByType text/css "access 1 month"
# Javascript
ExpiresByType application/javascript "access plus 1 year"
</IfModule>
$TypeID = isset($_GET['TypeID']) ? $_GET['TypeID'] : '';
$ListingID = isset($_GET['ListingID']) ? $_GET['ListingID'] : '';
$allowed_tables = array('tt_42', 'tt_43');//Array of allowed tables to sanatise query
//Define table name
$table ="tt_".$TypeID;
//Connect to database
$dbh = new PDO("mysql:host=$host;dbname=$db", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
try {
//Check if table name is in allowed list
if (in_array($table, $allowed_tables)) {
//Prepare query
$query = "SELECT * FROM `$table` WHERE `ID` = ? AND `ExpireDate` > NOW()";
}//end if
// Prepare statement
$stmt = $dbh->prepare($query);
// Assign parameter
$stmt->bindParam(1,$ListingID);
//Execute query
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$stmt->execute();
//New code
$Address = $listing['Address'];
$City = $listing['City'];
$State = $listing['State/Province'];
$Zip = $listing['Zip/Postal'];
$Country = $listing['Country'];
//End new code
echo '<h2>Map of Surrounding Area With Navigational Aides</h2>';
echo '<div class="CalloutBoxBlue">Hover over map and scroll, or use + and - in LH corner of map to zoom or expand viewing area. Alternatively, hold down mouse to manually move the map to a different geographical location, or drag the person icon to a specific location on the map for a street view.</div>';
echo '<div id="GoogleMap">';
//New code
echo '<iframe scrolling="no" style="width:480px; height:300px; border:0px;" frameborder="0" src="googlemap.php?Address='.$Address.'&City='.$City.'&State='.$State.'&Zip='.$Zip.'&Country='.$Country.'"></iframe>';
//End new code
echo '</div>';
}//End try
catch(PDOException $e) {
echo "I'm sorry I'm afraid you can't do that.". $e->getMessage() ;// Remove or modify after testing
file_put_contents('PDOErrors.txt',date('[Y-m-d H:i:s]').", mapSelect.php, ". $e->getMessage()."\r\n", FILE_APPEND);
}
}
最佳答案
您可以使用 Cache-Control
指定缓存验证器标题。确保在回显或打印任何内容之前设置它。
header('Cache-Control: <amount of seconds e.g. 3600 or 86400, "no-cache" for none>');
header('Cache-Control: 900'); // 15 minutes
$TypeID = isset($_GET['TypeID']) ? $_GET['TypeID'] : '';
$ListingID = isset($_GET['ListingID']) ? $_GET['ListingID'] : '';
$allowed_tables = array('tt_42', 'tt_43');//Array of allowed tables to sanitise query
// Define table name
$table = "tt_" . $TypeID;
if (in_array($table, $allowed_tables)) {
try {
// Connect to database
$dbh = new PDO("mysql:host=$host;dbname=$db", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// Prepare query
$query = "SELECT * FROM $table WHERE ID=? AND ExpireDate>NOW()";
// Prepare statement
$stmt = $dbh->prepare($query);
// Assign parameter
$stmt->bindParam(1, $ListingID);
// Execute query
$stmt->execute();
// Fetch all results
$data = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (!empty($data)) {
$listing = reset($data);
// New code
$Address = $listing['Address'];
$City = $listing['City'];
$State = $listing['State/Province'];
$Zip = $listing['Zip/Postal'];
$Country = $listing['Country'];
// End new code
echo '<h2>Map of Surrounding Area With Navigational Aides</h2>';
echo '<div class="CalloutBoxBlue">Hover over map and scroll, or use + and - in LH corner of map to zoom or expand viewing area. Alternatively, hold down mouse to manually move the map to a different geographical location, or drag the person icon to a specific location on the map for a street view.</div>';
echo '<div id="GoogleMap">';
// New code
echo '<iframe scrolling="no" style="width: 480px; height: 300px; border: 0px;" frameborder="0" src="googlemap.php?Address=' . $Address . '&City=' . $City . '&State=' . $State . '&Zip=' . $Zip . '&Country=' . $Country . '"></iframe>';
// End new code
echo '</div>';
} else {
// Show "no addresses found" message
}
} catch(PDOException $e) {
echo "I'm sorry I'm afraid you can't do that." . $e->getMessage(); // Remove or modify after testing
file_put_contents('PDOErrors.txt', date('[Y-m-d H:i:s]') . ", mapSelect.php, " . $e->getMessage(). "\r\n", FILE_APPEND);
}
}
关于google-maps-api-3 - Google PageSpeed 建议我指定一个缓存验证器,但我不知道如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15561201/
我试图让 Lighthouse 提供与我们从 Pagespeed Insights 获得的结果相似的结果,但数字还差得很远。目前正在查看分数和ttfb。这是从地球上的不同位置运行的,我们希望以合理的方
当我使用 google PageSpeed Insights 测试 facebook 时,我得到的结果非常不一致。它为 http://facebook.com 给出了不同的结果, https://fa
我通过我的 cPanel 在我的网站上激活了 Google PageSpeed 模块,我的网站现在似乎快了很多,但我注意到它增加了很多: eval(mod_pagespeed_123ABC); eva
如何允许 pagespeed 洞察到 http 基本身份验证站点?即使我按以下格式提到用户名和密码,它仍会返回如下错误。 Lighthouse 返回错误:FAILED_DOCUMENT_REQUEST
在部署了一个相当快的网站后,我通过 PageSpeed Insights 运行它,它的性能得分只有 25 左右。同时,完全相同的页面在 Edge 内的 Lighthouse 性能中排名 85。 我知道
我从 Chrome 开发工具和 Google Page Speed Insights 页面运行 Google Page Speed Insights(移动)得到了不同的结果。当我从 Chrome 开发
我已经为客户建立了一个模板和一些网站。我总是关心网站加载时间。我 Google PageSpeed Insights 是我的主要工具之一。两天前,我提到了一些不同的事情。我发现我的许多网站页面加载都在
我最近注意到 Google 更新了 PageSpeed Insight 报告页面。有一个“起源摘要”。 它到底是什么意思?为什么它与现场数据略有不同? 最佳答案 如果您正在测试的页面有足够多的访问者,
因此,在我所有的网页上,我都有 Yandex metrika 用于分析的代码。根据谷歌的说法,这个脚本正在减慢我的页面速度,需要改变它的加载方式以不被渲染阻塞、TTI 时间输入阻塞、FID 首次输入延
因此,在我所有的网页上,我都有 Yandex metrika 用于分析的代码。根据谷歌的说法,这个脚本正在减慢我的页面速度,需要改变它的加载方式以不被渲染阻塞、TTI 时间输入阻塞、FID 首次输入延
为什么Cumulative Layout Shift metric谷歌速度测量工具中的报告,如 Lighthouse/PageSpeed Insights与 Search Console 中报告的不同
我正在尝试 Google v5 API 页面速度洞察,但在 JSON 结果中找不到 SCORE。 这是 api https://www.googleapis.com/pagespeedonline/v
我目前正在我的新网站上使用页面速度,对此非常满意。 但我刚刚意识到我的/phpmyadmin 现在是空白的。 我知道这是因为 pagespeed 因为当我去/phpmyadmin/?PageSpeed
我有一个正在为http://dev.eatfit.co.nz/临时托管的客户创建的wordpress网站 我注意到经常(但不是每次)浏览页面(例如主页)时,我认为是google pagespeed在线
我想利用浏览器缓存来提高页面速度。听起来 max-age 和 Last-modified 是不错的选择,但我不清楚如何确定应该为其实现哪些文件。一般来说,我对如何实际执行此操作以及代码在 htacce
Recently google has changed page speed or page insights algorithm. Even if you keep your css or js i
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 4 年前。 Improve t
我不明白为什么 Google Pagespeed 在调整大小后会降低图像质量: 这是原图: http://www.architetturaecosostenibile.it/images/storie
我目前正在使用 Goole Pagespeed Insight 推荐进行网站优化。我已经设法取得了相当不错的成绩,但我在某个时候遇到了困难。经过几次测试后,我的结论是,我最后遇到的大部分问题都与我的网
Google PageSpeed 建议在 中添加关键 CSS标记在头部,并将外部 CSS 推迟到 HTML 的末尾。 通过在 HTML 中内联 CSS(应该分开)以及在 CSS 加载时创建 FOUC
我是一名优秀的程序员,十分优秀!