如何重载陈旧的外部谷歌地图api javascript

How to reload stale external google maps api javascript

本文关键字:外部 谷歌地图 api javascript 陈旧 何重载 重载      更新时间:2023-09-26

所以我们有一个chrome扩展和background。html看起来像这样

<!DOCTYPE html> 
<html>
<head>
  <script id="google-maps-js" type="text/javascript"
      src="https://maps.googleapis.com/maps/api/js?&key=AIzaSyCnHJh2lsVbM_fPXgwciRO-fInFgkkEebw&sensor=false&libraries=places"></script>
      <script type="text/javascript" src="/jquery.js"></script>
  <script type="text/javascript" src="/background_helper.js"></script>
  <script type="text/javascript" src="/background.js"></script>
</head>
<body>
  <div id="map"></div>
</body>
</html>

google maps api js在安装扩展或浏览器首次打开时加载一次,但如果浏览器打开超过3天,geocoder服务开始返回403错误,我相信这与这个问题的答案中提到的问题有关:

经过几个月的100%稳定,今天我得到403错误在谷歌地图服务

似乎3天后,javascript变得"陈旧",谷歌将返回403错误的任何请求。我试着放入一个计时器,这样每24小时它就会删除谷歌地图脚本标签并读取它,但后来我得到错误说我已经多次包含谷歌地图脚本,它会表现得出乎意料。

我如何"重新加载"或"刷新"的javascript,使其不再陈旧?

您应该能够简单地操作<script>元素。

按id从DOM中删除它,并插入一个相同的副本。这将重新运行脚本,并且应该将服务器配置为不允许缓存,如果它确实过时了。