Использование рельсов (7.1.3.2) и турборельсов (2.0.4). По какой-то причине, когда я навожу курсор мыши на любую ссылку в своем приложении, к связанной странице происходит запрос GET. Я проверяю свой инспектор и вижу событие mouseenter от turbo.es2017-esm.js:3135
.
Когда я отключаю его, запросы GET не выполняются.
Вот пример ссылки, которая у меня есть
<%= link_to "Edit", edit_post_path(@post), class: "hover:text-black flex-none", data: { turbo_frame: :resource_frame } %>
Кто-нибудь знает, почему это происходит и как я могу это остановить?
Это новое поведение instaclick в Turbo v8:
https://github.com/hotwired/turbo/pull/1101
Вы можете отключить его, добавив метатег на свою страницу:
<meta name = "turbo-prefetch" content = "false">
или атрибут данных для/около ваших ссылок:
<a href = "/" data-turbo-prefetch = "false">Home</a>
<div data-turbo-prefetch = "false">
<a href = "/">Home</a>
...
</div>
https://turbo.hotwired.dev/handbook/drive#prefetching-links-on-hover
По ссылке выше: «Вы также можете отключить это поведение программно, перехватив событие Turbo:before-prefetch и вызвав event.preventDefault()». ` document.addEventListener("turbo:before-prefetch", (event) => { if (isSavingData() || hasSlowInternet()) { event.preventDefault() } }) function isSavingData() { return navigator.connection?. saveData } function hasSlowInternet() { return navigator.connection?.efficientType === "slow-2g" || navigator.connection?.efficientType === "2g" } `