Gmap3清除并添加标记太快会导致延迟

时间:2013-05-19 04:47:08

标签: javascript performance jquery google-maps-api-3 jquery-gmap3

我尝试实现来自服务器的动态标记列表。我注意到当用户非常快地点击按钮(例如0.5秒/秒)时,标记会以极大的延迟(有时超过3秒)重新出现......?可能导致什么?这是我的代码。非常感谢?

          $("a#userBookmark").click(function () {
              $.ajax({
                  type: "POST",
                  url: "Details.aspx/LoadUserBookmark",
                  data: "",
                  contentType: "application/json",
                  dataType: "json",
                  success: function (res) {
                      if (!res.d) {
                          window.location = "login.aspx?url=" + "<%= clsStringExtensions.base64Encode("Details.aspx")%>";
                      }
                      else {
                          $("#MapDetail").gmap3({
                              clear: {
                                  name: "marker",
                                  all: true
                              },
                              marker: {
                                  values: res.d,
                                  options: {
                                      draggable: false
                                  },
                                  events: {
                                      click: function (marker, event, context) {
                                          var map = $(this).gmap3("get"),
                                            infowindow = $(this).gmap3({ get: { name: "infowindow" } });
                                          if (infowindow) {
                                              infowindow.open(map, marker);
                                              infowindow.setContent(context.data);
                                          } else {
                                              $(this).gmap3({
                                                  infowindow: {
                                                      anchor: marker,
                                                      options: {
                                                          content: context.data,
                                                          maxWidth: 400
                                                      }
                                                  }
                                              });
                                          }
                                      }
                                      //                         mouseout: function () {
                                      //                             var infowindow = $(this).gmap3({ get: { name: "infowindow" } });
                                      //                             if (infowindow) {
                                      //                                 infowindow.close();
                                      //                             }
                                      //                         }
                                  }
                              }
                          });
                      }

                  },
                  error: function (errorObjString) {
                      var err = $.parseJSON(errorObjString.responseText);
                      alert(err.Message);
                  }

              });
          });

1 个答案:

答案 0 :(得分:0)

我认为这与ajax中的服务器端代码有关。检查Web检查器中资源的加载时间,如firebug或chrome开发人员工具。