Почему Chrome показывает эти (rails-jquery) предупреждения дважды, а Firefox - нет?

0

Как я могу запретить повторять эти всплывающие окна rails-js-jquery в Firefox?
Они показывают только один раз в Chrome... хотя и не в "Chromium" на моей машине Ubuntu. Я проверил Chrome, и у меня нет установленных расширений.

Javascript запускается дважды, поэтому я вижу 4 сообщения.
Остальные части работают нормально (db обновляется, обновляется ui span)

Haml - app/views/link/index.haml

= link_to 'verify', verify_link_path(:id => link.id, :table_row => index),  
  class: 'verify', remote: true

Javascript - это app/views/links/verify_link.js.erb

$("span#verify_link_<%=params['table_row']%>").text('verified');
alert("message 1");
alert("message 2");

Контроллер - это app/controllers/links_controller.rb

def verify_link
  @link = Link.find(params[:id])
  @link.verified_date = Time.now
  @link.save!
  respond_to do |format|
   format.js
  end 
end

Js - verify_link_js.erb:

$("span#verify_link_<%=params['table_row']%>").text('verified');
alert("message 1");
alert("message 2");

На вкладке "Сеть" отображается только один файл js для каждого щелчка по проверке. Всплывающие окна в Chrome:

Изображение 174551Изображение 174551Изображение 174551Изображение 174551

Если в Firefox я просто получаю

Изображение 174551Изображение 174551

  • 1
    Вы получаете сценарий дважды или он запускается дважды? (проверьте сеть)
  • 0
    Однажды. Обновлено q с дополнительной информацией.
Показать ещё 4 комментария
Теги:
ruby-on-rails-3

1 ответ

1

Ответ на вопрос, почему они показывали дважды (хотя не из-за чего не в Firefox!), Заключается в том, что у моего файла ресурсов javascript (app/assets/javascript/application.js) было следующее:

//= require_self
//= require jquery-1.7.2.min
//= require jquery-ui-1.8.22.custom.min
//= require default_on_first_input_field
//= require row_shading
//= require sortable_hook
//= require_tree .

Это в основном требовало файлов дважды - индивидуально, а затем через require_tree.

Мое предпочтительное решение заключалось в том, чтобы удалить человека. Это нормально, чтобы требовать все для этого проекта... и на самом деле require_tree делал именно это. Поэтому я изменил его на просто

//= require_self
//= require_tree .

Интересно, что этот вопрос пока не проявлялся до сих пор в существующих функциях javascript. Предположительно, они были "нормально", чтобы работать дважды, что имеет смысл, например, "штрихование строк дважды" в порядке. Таким образом, в основном это был оставшийся "artififact" моего обновления, чтобы использовать конвейер активов из приложения, которое началось с rails 2.3.8 (перед ним).

Ещё вопросы

Сообщество Overcoder
Наверх
Меню