gpt4 book ai didi

javascript - 脚本导致链接调用服务器两次

转载 作者:行者123 更新时间:2023-12-02 19:49:00 25 4
gpt4 key购买 nike

使用this gist当网站另存为主屏幕 Web 应用程序时,防止链接启动浏览器。

该脚本在一定程度上正在发挥作用。问题是由于某种原因它调用目标页面两次。这导致 Jquery Mobile 在每次页面加载时显示加载页面错误,尽管已成功加载页面。

这是一个示例链接:

<a href="/bookings/3/features" data-ajax="false">Link Example</a>

这是来自服务器的日志:

 Started GET "/bookings/3/features" for 10.104.4.210 at 2012-03-02 17:13:25 +0000
Processing by FeaturesController#index as HTML
Parameters: {"booking_id"=>"3"}
Booking Load (0.3ms) SELECT `bookings`.* FROM `bookings` WHERE `bookings`.`id` = 3 LIMIT 1
Car Load (0.2ms) SELECT `cars`.* FROM `cars` WHERE `cars`.`id` = 2 LIMIT 1
CarModel Load (0.2ms) SELECT `car_models`.* FROM `car_models` WHERE `car_models`.`id` = 1 LIMIT 1
Manufacturer Load (0.2ms) SELECT `manufacturers`.* FROM `manufacturers` WHERE `manufacturers`.`id` = 1 LIMIT 1
Feature Load (0.3ms) SELECT `features`.* FROM `features` WHERE `features`.`car_model_id` = 1
(0.2ms) SELECT COUNT(*) FROM `car_colours` WHERE `car_colours`.`car_model_id` = 1
Rendered features/index.html.erb within layouts/frontEnd (5.2ms)
Rendered shared/_footer.html.erb (1.1ms)
Completed 200 OK in 62ms (Views: 56.8ms | ActiveRecord: 1.4ms)


Started GET "/bookings/3/features" for 10.104.4.210 at 2012-03-02 17:13:25 +0000
Processing by FeaturesController#index as HTML
Parameters: {"booking_id"=>"3"}
Booking Load (0.4ms) SELECT `bookings`.* FROM `bookings` WHERE `bookings`.`id` = 3 LIMIT 1
Car Load (0.2ms) SELECT `cars`.* FROM `cars` WHERE `cars`.`id` = 2 LIMIT 1
CarModel Load (0.2ms) SELECT `car_models`.* FROM `car_models` WHERE `car_models`.`id` = 1 LIMIT 1
Manufacturer Load (0.2ms) SELECT `manufacturers`.* FROM `manufacturers` WHERE `manufacturers`.`id` = 1 LIMIT 1
Feature Load (0.3ms) SELECT `features`.* FROM `features` WHERE `features`.`car_model_id` = 1
(0.2ms) SELECT COUNT(*) FROM `car_colours` WHERE `car_colours`.`car_model_id` = 1
Rendered features/index.html.erb within layouts/frontEnd (4.5ms)
Rendered shared/_footer.html.erb (1.1ms)
Completed 200 OK in 26ms (Views: 20.8ms | ActiveRecord: 1.3ms)

最佳答案

问题是 jQuery Mobile 尝试通过执行 ajax 而不是常规页面加载来优化页面加载并最小化请求。这会导致 jQuery mobile 发出第一个请求,当 jQuery 等待返回时,“stay_standalone”脚本会触发并以常规 http 页面加载方式加载页面。

您可以在这两个链接中看到与此功能相关的 jQuery Mobile 代码:first in the init ,然后 checking for ajax flag and finally making a request 。这也是in jQuery Mobile's global config docs .

我在独立模式下搜索了一些有关 jQuery Mobile 的信息,但没有找到任何具体内容。这个问题有两种解决方案:

  1. 从您的网站/网络应用程序中删除要点。这可能是一个足够的解决方案,因为 jQuery Mobile 已经为您执行了 ajax - 并且该链接不会在 Safari 中打开。此外,这可能会更快,请求更少。
  2. 如果这没有按预期工作,您可以禁用 jQuery Mobile 中的 ajaxEnabled 功能,如其文档中所述:

    $(文档).bind("mobileinit", function(){ ajax启用:假});

第二个选项不是最佳选择,但可能是一个很好的解决方案,直到您弄清楚 jQuery Mobile 如何阻止 Mobile Safari 中的页面加载。

关于javascript - 脚本导致链接调用服务器两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9537689/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com