サポート » その他 » google spread sheetから素早く読込む方法はないでしょうか

  • 解決済 megumiiuchi19920715

    (@megumiiuchi19920715)



    恐れ入ります、めぐみと申します。
    google spread sheetのセル100個くらいを読み込んでwebに表示させています。
    ※function.phpに数行のスクリプトを書いてWebに表示させるようにしています。
    ただ、表示まで1分以上かかってしまいます。
    これを早く表示させるためのアイデアは無いでしょうか。

    非常に抽象的な質問で恐れ入りますが、少しでも早く表示させる解決策を探しています。
    なにとぞ宜しくお願いいたします。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • まずは、どこで時間かかっているか?を調べたほうが良いように思います。

    こんにちは、

    単純に、スプレッドシートで、範囲選択してコピー ビジュアルモードで張り付けで、問題が発生しているのですか?

    • この返信は2 週間、 1 日前に  nobita さんが編集しました。
    megumiiuchi19920715

    (@megumiiuchi19920715)

    GoogleSpreadSheetをデータベースのように使用しています。
    [GoogleSpreadSheet] <-> [WordPress] <-> [生徒(閲覧者)]
    実際には大学の部活動で活用しています。
    部員が自分のデータが掲載されているホームページ(WordPress)にアクセスします。
    そうすると自分の測定結果や部員の中での成績順位がどのようなものかを確認できるようにしています。
    各部員のデータはGoogleSpreadSheetのセル100個分くらい読み込んでいます。
    データベースの知識が乏しく、GoogleSpreadSheetで生徒全員のデータを管理しています。
    簡単なホームページの内容ですが下記のとおりです。
    ————————-
    吉田君の体重は[セル1]Kgです。
    先月より[セル2]Kg[セル3 (増えてor減って)]います。
    部員全員の中で[セル4]番です。
    ————————-
    というようになってまして、これが1部員に付き、100個分くらいセルを読み込んでいます。

    個人的に思うのですが、GoogleSpreadSheetを直接開くと計算は結構速いように思えるのですが、閲覧者がWordpressを介してGoogleSpreadSheetを読み込むと1分以上かかってしまいます。
    ロリポップを使用していますが、先日たまたま友人にXserverを使わせてもらったのですが、だいたいロリポップと同じようなスピードでした。

    素人意見で恐縮ですが、
    生徒が閲覧するときに、毎回スプレッドシートを読み込むのではなく、GoogleSpreadSheetのデータを変更したときにWordPressのどこかに生徒ごとのセルのデータを一時的に保管して、そこからセルのデータを出力できれば速いのかな?と思っていたのですが、どうやって実現するか知識もなく、このフォーラムに藁を掴む思いで質問させていただいた次第です。

    最初の質問が分かりにくく大変失礼しました。
    皆様お忙しいところ大変恐縮ですが、どんな些細なことでも結構ですのでアドバイス頂ければ幸いです。

    ※function.phpに数行のスクリプトを書いてWebに表示させるようにしています。

    どのような方法で、読み込んでいるのかわからないと何とも言えないですが、

    Inline Google Spreadsheet Viewer | WordPress.org

    のようなプラグインもあるみたいですし、(すみません、使ったことないですが)

    Google Sheet APIを試す時に詰まったところ – Qiita

    といったAPIもあるみたいです。

    「みたい」連発で申し訳ありませんが、、、

    また、データを一時保存する
    Transients API « WordPress Codex
    というのがあります。読み込みに時間のかかるものなどを、保存しておいて(有効期限付きで)それを表示するといった事で、ロードにかかる時間を短縮できます

    • この返信は2 週間、 1 日前に  nobita さんが編集しました。

    追加情報ありがとうございました。

    頂いた情報からすると、
    [GoogleSpreadSheet] <-> [WordPress]
    のところが時間かかっている可能性が高いように思います。
    (WordPress自体が遅い、とか、[セル4]の計算がすごい時間かかる、とかは可能性低そう)

    なので、

    GoogleSpreadSheetのデータを変更したときにWordPressのどこかに生徒ごとのセルのデータを一時的に保管して、そこからセルのデータを出力

    ↑は結構有力な方法に思います。

    他にも、WordPressの中に部員データを置く方法、も考えられますね。

    どちらの方法も、WordPressのデータベースの操作、が前提になってしまいますけど。

    megumiiuchi19920715

    (@megumiiuchi19920715)

    MIZUNOさま、nobitaさま、ありがとうございます。

    おかげさまで表示速度を上げるために以下のアイデアが浮かびました。
    恐れ入ります、ハズしていないでしょうか。

    1.GoogleSpreadSheetで生徒のデータを更新します。
    2.WordPress側で上の共有データを読込んでCVSに変換して、WordPress内のサーバに保存します。
    3.生徒が自分のホームページを閲覧する際に、WordPress内のCVSの指定されたデータを読み込んで表示します。

    「2」の読み込みさせる作業が増えますが、それで生徒全員の表示速度が上がるのであれば効率はすごく上がり理想的なのですが。
    お忙しいところ恐れ入りますがよろしくお願いいたします。

    こんにちは

    回答がつかないようですので・・・

    「2」の作業を省略する方法はありますが、少し難易度が高いのでご自身でやれる方法としては間違いないのかな、と思います。

    しかし、CSVファイル更新中に通信エラーなどが発生してCSVファイルが破損した状態になる可能性があります。
    そうすると、画面で正常に表示することができません。
    これ防ぐために、閲覧時に読み込むのとは別の名前で一旦作成することをお勧めします。
    ファイルへの書き込みなどすべてが正常に完了したのち、既存のファイルを削除するかリネームし、作成したファイルを WordPress で読み込むファイル名にリネームすれば良いと思います。
    リネーム処理は素早いですので、ファイルが無いというタイミングはほとんど無視できますし、万が一そのような状況が発生しても、リロードすれば正常に表示されます。

    megumiiuchi19920715

    (@megumiiuchi19920715)

    munyaguさま

    お礼の返信が遅れてしまい、申し訳ありませんでした。
    頂いた内容をぜひ参考にさせて頂きます。
    本当にありがとうございました。

    megumiiuchi19920715

    (@megumiiuchi19920715)

    解決済とさせていただきます。
    ありがとうございました。

9件の返信を表示中 - 1 - 9件目 (全9件中)
  • このトピックに返信するにはログインが必要です。