legacy-knowledge-base
公開されました Jun. 30, 2025

「このサイトのページへのリンク "の "選択 "ポップアップは、サイトが多くのページを持っている場合、遅いです。

投稿者

Adam Kollar

knowledge-article-header-disclaimer-how-to

knowledge-article-header-disclaimer

legacy-article

learn-legacy-article-disclaimer-text

問題

  • サイトのページ数が多い場合、「このサイトのページへのリンク」ページを作成し、「選択」をクリックすると、ポップアップウィンドウのロード時間が長くなります。
  • 再現する:
    • ページ数が非常に多いサイトの場合(テストでは14000ページ)
    • Site Builder --> Pages --> にアクセスし、「このサイトのページへのリンク」ページを作成する。

    • 作成したページの「選択」ボタンをクリックします。

    • ポップアップを見る。

  • 実際の結果ページの表示に時間がかかる(私の場合、約10秒かかった)。
  • 期待される結果ポップアップはすぐにページを表示するはずです。

環境

  • DXP 7.3+

解像度

  • これは意図しない動作であり、以下のチケットで報告され、対処されています:
  • 上記のLPSチケットを含むHotfixをリクエストするには、ヘルプセンターのチケットを開いてください。

追加情報

  • バニラ・インスタンスでこの動作をテストしたい場合は、以下のスクリプトを使ってページを生成することができる:
    • System --> Server Administration --> Scriptに移動して、以下のスクリプトを実行し、約14000ページを生成する:

    • import com.liferay.petra.string.StringPool;
      import com.liferay.portal.kernel.log.Log;
      import com.liferay.portal.kernel.log.LogFactoryUtil;
      import com.liferay.portal.kernel.model.Group;
      import com.liferay.portal.kernel.model.Layout;
      import com.liferay.portal.kernel.model.LayoutConstants;
      import com.liferay.portal.kernel.service.GroupLocalServiceUtil;
      import com.liferay.portal.kernel.service.LayoutLocalServiceUtil;
      import com.liferay.portal.kernel.service.ServiceContext;
      import com.liferay.portal.kernel.service.ServiceContextThreadLocal;
      
      public class LayoutGenerator {
      	
      	def chars = ['a','b','c','d','e','f','g','h','i','j','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'] as char[];
      	
      	public void execute() {
      		try {
      			ServiceContext serviceContext = ServiceContextThreadLocal.getServiceContext();
      			
      			Group group = GroupLocalServiceUtil.fetchFriendlyURLGroup(serviceContext.getCompanyId(), "/myportal");
      			if ( group!=null ) {
      				generateLayouts("pagin", 0, 4, 11 , group, serviceContext);
      			}
      			else {
      				log.info("NO GROUP FOUND");
      			}
      		} catch (Throwable e) {
      			log.error(e.getMessage(), e);
      		} finally {
      		}
      	}
      
      	public void generateLayouts(String name, long parentLayoutId, int level, int count, Group group, ServiceContext serviceContext) {
      		try {
      			if ( level<= 0) {
      				return;
      			}
      			
      			if ( count > chars.length ) {
      				count = chars.length;
      			}
      			
      			long userId = serviceContext.getUserId();
      			long groupId = group.getGroupId();
      			boolean isPrivateLayout = false;
      			String title = "";
      			String description = "";
      			String type = LayoutConstants.TYPE_PORTLET;
      			boolean isHidden = false;
      			String friendlyURL =  StringPool.BLANK;
      
      			for (int i = 0; i < count; i++) {
      				try {
      					String realName = name.concat(String.valueOf(chars[i]));
      					Layout layout = LayoutLocalServiceUtil.addLayout(
      							userId, groupId, isPrivateLayout,
      							parentLayoutId, realName, title, description,
      							type, isHidden, friendlyURL,
      							serviceContext); 
      					log.info(realName);
      					generateLayouts(realName, layout.getLayoutId(),(level-1), count, group, serviceContext);
      				} catch (Exception e) {
      					throw e;
      				}
      			}
      
      		} catch (Throwable e) {
      			log.error(e.getMessage(), e);
      		} finally {
      
      		}
      	}
      	Log log = LogFactoryUtil.getLog("LayoutGenerator");
      }
      (new LayoutGenerator()).execute();
did-this-article-resolve-your-issue

legacy-knowledge-base