Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图预加载XML_Javascript_Xml_Google Maps_Preload - Fatal编程技术网

Javascript 谷歌地图预加载XML

Javascript 谷歌地图预加载XML,javascript,xml,google-maps,preload,Javascript,Xml,Google Maps,Preload,我有一个谷歌地图页面,我正在寻找优化,因为它是大量使用。当前,用户执行以下操作进行搜索: 键入地址,然后单击提交 此页面将地址作为post数据提交到另一个页面(map.php) 加载map.php,并执行javascript以显示地图 此javascript根据搜索的位置向Web服务器提交请求,检索xml文件,并在地图上显示结果 由于外部因素(api),xml文件请求可能需要大量时间(几秒钟)。我希望在页面完全加载之前请求这个xml文件,以加快请求速度。不幸的是,此请求使用的回调函数在加载外部资

我有一个谷歌地图页面,我正在寻找优化,因为它是大量使用。当前,用户执行以下操作进行搜索:

  • 键入地址,然后单击提交
  • 此页面将地址作为post数据提交到另一个页面(map.php)
  • 加载map.php,并执行javascript以显示地图
  • 此javascript根据搜索的位置向Web服务器提交请求,检索xml文件,并在地图上显示结果
  • 由于外部因素(api),xml文件请求可能需要大量时间(几秒钟)。我希望在页面完全加载之前请求这个xml文件,以加快请求速度。不幸的是,此请求使用的回调函数在加载外部资源之前尚未定义


    对我来说,预取xml文件并为尚未加载的函数设置回调的最佳方法是什么?基本上,我希望加载页面顶部的xml文件,并等待调用回调函数,直到它被检索。

    您可以定义自己的回调函数,然后使用该函数调用另一个回调函数,前提是它存在:

    if (typeof theCallback == 'function') 
      theCallback(arg1, arg2, arg3, etc); 
    

    尽管如此,这仍然不能解决问题,因为我的回调函数很有可能一旦存在就不存在了。我最终修改了我的站点,使用一个没有任何回调的函数尽早开始加载xml文件。这将开始加载文件。接下来,我在实际需要时再次加载该文件。根据我在多个浏览器中的测试,它确认下载正在进行中,只是等待第一次下载完成,而不是开始新的下载。这使我可以更早地开始下载。您自己的回调函数可以是该文件的本机函数,因此它始终存在。