Posted by kenkun on July 17, 2016 at 7:29am
お世話になります。
表題の件ですが、匿名ユーザーの場合に限り、viewsのランダムソートが動作しません。解決策をご存知の方がいましたら教授いただけると幸いです。何卒、よろしくお願いいたします。
おそらくキャッシュが悪さをしているのかなと思います。viewsのキャッシュは「なし」にしてあります。
▼Drupalのバージョン
8.1.6
▼問題
匿名ユーザーの場合に限り、viewsのランダムソートが動作しない
▼やりたいこと
viewsで画像を取得してランダムで表示させる。並び変え基準を表示させず、以下、①のような設定で動かしたいです。
▼viewsの設定
①動かない設定
https://groups.drupal.org/files/settei1.PNG
②なぜか動く設定
https://groups.drupal.org/files/settei2.PNG
①から以下の設定を変更しています。
・AJAXを利用を「はい」に変更
・並び替え基準のランダムを外部設置に変更
ブラウザの更新ボタンではランダムソートは動作しませんが、viewsの適用ボタンで更新した場合はランダムソーとが動作します。JavaScriptを使うことでキャッシュがクリアされているのでしょうか。
| Attachment | Size |
|---|---|
| settei1.PNG | 47.97 KB |
| settei2.PNG | 46.13 KB |

Comments
試してみたら、再現しました。 内部的には、「ランダムでソー
試してみたら、再現しました。
内部的には、「ランダムでソートした結果」をキャッシュするようですね。
フォームを外部設置した場合は、ユーザーがソート基準を変えられるため結果が一意に決まらないので、
キャッシュされない(キャッシュしない)ようです。
一応、Internal Page Cache モジュールを無効化すれば外部設置にしなくても毎回ランダムに表示される事は
確認しました。
ただ、このモジュールを無効化するとanonymous ユーザー向けの他のキャッシュ (views以外のキャッシュも含む) が効かなくなるので、サイトのレスポンス速度に影響します。
お忙しいところご教授いただき誠にありがとうございます。外部
お忙しいところご教授いただき誠にありがとうございます。外部設置で作成してみようと思います。