Rails - Safari делает дополнительный запрос через ссылку с поддержкой AJAX - PullRequest
0 голосов
/ 09 сентября 2018

Я построил таблицу с кнопками внизу для загрузки ряда дополнительных строк через data-remote = "true". Это передается в контроллер, есть ответ format.js, и jquery добавляет к таблице. Все работает нормально, кроме одной вещи. Safari, кажется, делает что-то вроде ... нетерпеливой загрузки первого URL, с которым сталкивается? Эта проблема не возникает в Chrome или Firefox.

Мои ссылки HTML выглядят так:

<a turbolinks="false" data-remote="true" href="/users/name?expand=5">5</a>
<a turbolinks="false" data-remote="true" href="/users/name?expand=50">50</a>
<a turbolinks="false" data-remote="true" href="/users/name?expand=500">500</a>

Когда я посещаю мой маршрут "/ users / name", я вижу:

Processing by UsersController#show as HTML
Processing by UsersController#show as JS
Parameters: {"id"=>"name"}
Parameters: {"expand"=>"5", "id"=>"name"}
Rendering users/show.html.erb within layouts/application
Rendering users/show.js.erb

Ответы HTML и JS предоставляются. Это запрашивает мою базу данных дважды (сначала для начальных данных, затем для дополнительных пяти строк). Только исходные данные (правильно) отображаются на странице.

Почему ТОЛЬКО Safari делает этот запрос еще до того, как его спросят, нажав на ссылку?

1 Ответ

0 голосов
/ 10 сентября 2018

Это странно, но я уверен, что понял это. Safari пытается помочь, предварительно выбирая данные для ссылки, по которой я обычно кликаю, когда нахожусь на этой странице (на которую сейчас нажимают много, потому что я ее тестирую).

В моем первом примере вы можете видеть, что всегда вызывается "expand => 5". Я 10 раз щелкнул ссылку «развернуть => 50», а затем попытался перейти по маршруту «/ users / name». Теперь каждый запрос выглядит так:

Processing by UsersController#show as HTML
Processing by UsersController#show as JS
Parameters: {"id"=>"name"}
Parameters: {"expand"=>"50", "id"=>"name"}

Иногда это дополнительный запрос, но я думаю, это не больно. Во всяком случае, это заставляет мою базу данных кэшировать запрос, который почти вероятен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...