質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

Q&A

1回答

781閲覧

idに移動するjsを追加したところ、サイト表示が非常に重くなってしまいました。なるべく仕様は変えずに軽くしたいです。(実アプリのためタイムアウト頻発で焦っております????)

akikko

総合スコア32

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

0グッド

2クリップ

投稿2021/08/04 05:04

###現在の状況とやりたいこと
https://example.com/events/1#houkoku
といったid付のリンクをクリックすると、

①イベントページのbootstrapの3つのタブの内の1つを開き、
②そのタブの位置までスクロールする
といったことをJSで実装いたしました。

その結果、https://example.com/events/1#houkokuにアクセスが少しでも集中すると、
herokuのリクエストタイムアウト(30秒)が頻発するようになってしまいました????

タブを開いて、スクロールすること自体はなるべく変えたくないのですが、
ページの読み込みを早くさせる、もしくは実装の問題があればご指摘を頂けないでしょうか?

実アプリで起こってしまっておりまして、各署から怒られており・・・。
教えて頂けますと大変嬉しいです。
どうぞよろしくお願いいたします。

###実装しているJS
####assets/javascripts/events.js

$(function(){ if (location.hash) { var url = window.location.href; var activeTab = url.substring(url.indexOf("#") + 1); $('a').removeClass("active in"); $('a[href="#'+ activeTab +'"]').tab('show'); $("html,body").animate({scrollTop:$('a[href="#'+ activeTab +'"]').offset().top}); return false; } });

####views/events/event_show.html

<div> <ul class="nav nav-tabs"> <li class="nav-item active"> <a href="#event_show" class="nav-link active" data-toggle="tab">活動詳細</a> </li> <li class="nav-item"> <a href="#event_show_progress" class="nav-link" data-toggle="tab">経過報告</a> </li> <li class="nav-item"> <a href="#event_show_comments" class="nav-link" data-toggle="tab">コメント</a> </li> </ul> </div>

初心者の質問でご迷惑をお掛け致しまして本当に申し訳ございません。
どうぞお知恵をお貸し頂けますと大変嬉しいです。
どうぞよろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

その結果、https://example.com/events/1#houkokuにアクセスが少しでも集中すると、

herokuのリクエストタイムアウト(30秒)が頻発するようになってしまいました????

本当に「その結果」なのでしょうか?

当該のJavaScriptコードに、Herokuへのリクエストを行うコードは含まれていませんので、このJavaScriptがいくら重くてもそれはブラウザ内だけの影響で、Herokuへ影響することは考えづらいです。

「本当にこれが原因だという証拠を掴む」か、それとも「別の部分が影響している」か「単純に増えたリクエストをサーバサイドでさばけていないだけ」なのか、まずは原因を確定させてください。

投稿2021/08/04 05:22

編集2021/08/04 05:23
maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akikko

2021/08/04 05:35 編集

投稿ありがとうございます。 はい、もともと「報告」の投稿があった際に、投稿の通知メールがユーザー様に配信されます。 そのメールに、上記のようなid付きのリンクが掲載されており、通知メールからアクセスされます。 仕様変更前は、https://example.com/events/1 といったidがないリンクを掲載しており、 仕様の変更の翌日の通知メール後からherokuからresponseエラーの通知が頻発し始めました。 通知メールは毎日同じ時間に配信されるのですが、毎日配信されたときと同じ時間帯がエラー頻発の時間帯ですので、id付リンクが遅延の原因であることはほぼほぼ間違いないと思っております。 heroku側のメモリを増やしても、1リクエストあたりの時間が伸びているだけですので、増えたら増えるだけエラーのリクエストが発生するだけという状況です。 そのため、原因としてはその仕様変更以外に考えられないのです・・・。 今まではJSは後から読み込んだいたものが、id付のリンクなので、全て読み込んでからしかページがロードされないといったことが発生しているのかも知れないと思っているのですが、そういった可能性はないものでしょうか?
maisumakun

2021/08/04 05:32

アセットのプリコンパイルは行っていますか?
akikko

2021/08/04 05:37

ご返事ありがとうございます。 Rails.application.config.assets.precompile += %w( turbolinks ) と、turbolinksに関してだけ設定を行っております。 (リッチテキストエディタのsummernoteを動かすために設定しております)
maisumakun

2021/08/04 05:40

heroku内でプリコンパイルを行わないと、「リクエストのたびにJavaScriptを生成する」という重たい処理が必要となります。 詳細は「Heroku Rails プリコンパイル」で調べてみましょう。
akikko

2021/08/04 06:07

ありがとうございます! 今早速しらべております。最後に1点だけ教えて頂けると大変嬉しいです。 通常、rails5の場合、assets以下は自動でプリコンパイルされるものとおもっていたのですが、それ自体が思い込みで間違っているのでしょうか?
maisumakun

2021/08/04 06:11

> 通常、rails5の場合、assets以下は自動でプリコンパイルされるものとおもっていたのですが、それ自体が思い込みで間違っているのでしょうか? はい。プリコンパイルを行わせない場合、毎回その場での生成処理が行われることとなります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問