diff --git a/Gemfile b/Gemfile index a8a4af7..eb8a30c 100644 --- a/Gemfile +++ b/Gemfile @@ -79,6 +79,8 @@ end group :development do # Use console on exceptions pages [https://github.com/rails/web-console] gem "web-console" + + gem 'bullet', '~> 8.0' end group :production do diff --git a/Gemfile.lock b/Gemfile.lock index a88d71d..1c304d7 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -121,6 +121,9 @@ GEM brakeman (7.0.0) racc builder (3.3.0) + bullet (8.0.1) + activesupport (>= 3.0.0) + uniform_notifier (~> 1.11) capybara (3.40.0) addressable matrix @@ -478,6 +481,7 @@ GEM unicode-display_width (3.1.4) unicode-emoji (~> 4.0, >= 4.0.4) unicode-emoji (4.0.4) + uniform_notifier (1.16.0) uri (1.0.2) useragent (0.16.11) warden (1.2.9) @@ -515,6 +519,7 @@ DEPENDENCIES aws-sdk-s3 (~> 1.170) bootsnap brakeman + bullet (~> 8.0) capybara cssbundling-rails debug diff --git a/app/controllers/weather_arts_controller.rb b/app/controllers/weather_arts_controller.rb index a01f226..68b24cc 100644 --- a/app/controllers/weather_arts_controller.rb +++ b/app/controllers/weather_arts_controller.rb @@ -3,16 +3,6 @@ class WeatherArtsController < ApplicationController @city = City.friendly.find(params[:city_id]) @weather_art = @city.weather_arts.friendly.find(params[:slug]) - @previous_weather_art = @city.weather_arts - .where("id < ?", @weather_art.id) - .order(id: :desc) - .first - - @next_weather_art = @city.weather_arts - .where("id > ?", @weather_art.id) - .order(id: :asc) - .first - ahoy.track "View Weather Art", { weather_art_id: @weather_art.id, city_id: @weather_art.city_id, diff --git a/app/javascript/controllers/index.js b/app/javascript/controllers/index.js index f0137f8..61604f3 100644 --- a/app/javascript/controllers/index.js +++ b/app/javascript/controllers/index.js @@ -7,8 +7,10 @@ import HelloController from "./hello_controller" import PhotoSwipeLightBoxController from "./photo_swipe_lightbox_controller" import FlashMessageController from "./flash_controller" import SearchController from "./search_controller" +import PageLoadTimeController from "./page_load_time_controller" application.register("hello", HelloController) application.register("photo-swipe-lightbox", PhotoSwipeLightBoxController) application.register("flash", FlashMessageController) application.register("search", SearchController) +application.register("page-load-time", PageLoadTimeController) diff --git a/app/javascript/controllers/page_load_time_controller.js b/app/javascript/controllers/page_load_time_controller.js new file mode 100644 index 0000000..c9e2197 --- /dev/null +++ b/app/javascript/controllers/page_load_time_controller.js @@ -0,0 +1,18 @@ +import {Controller} from "@hotwired/stimulus" + +export default class extends Controller { + static targets = ["timer"] + + connect() { + // 记录页面加载开始的时间 + const startTime = performance.now(); + + // 监听页面加载完成事件 + window.addEventListener('load', () => { + const endTime = performance.now(); + const loadTime = endTime - startTime; + // 更新显示 + this.timerTarget.textContent = loadTime; + }); + } +} \ No newline at end of file diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb new file mode 100644 index 0000000..b787925 --- /dev/null +++ b/app/views/layouts/_footer.html.erb @@ -0,0 +1,24 @@ + + diff --git a/app/views/layouts/application.html.erb b/app/views/layouts/application.html.erb index 9515c72..7366b3e 100644 --- a/app/views/layouts/application.html.erb +++ b/app/views/layouts/application.html.erb @@ -64,26 +64,7 @@ <%= yield %> - - + <%= render 'layouts/footer' %> diff --git a/app/views/weather_arts/show.html.erb b/app/views/weather_arts/show.html.erb index 162fcdc..dd85448 100644 --- a/app/views/weather_arts/show.html.erb +++ b/app/views/weather_arts/show.html.erb @@ -86,34 +86,6 @@

- -
- <% if @previous_weather_art %> - <%= link_to city_weather_art_path(@city, @previous_weather_art), - class: "btn btn-outline btn-primary w-full sm:w-auto flex items-center justify-center gap-2" do %> - - - - Previous Weather Art - <% end %> - <% end %> - - <% if @next_weather_art %> - <%= link_to city_weather_art_path(@city, @next_weather_art), - class: "btn btn-outline btn-primary w-full sm:w-auto flex items-center justify-center gap-2" do %> - Next Weather Art - - - - <% end %> - <% end %> -
- - <% if @previous_weather_art.nil? && @next_weather_art.nil? %> -
- No more Weather Arts available -
- <% end %>