1
0
-1
1 回答
- 210
WBS ガントチャートではユーザの履歴情報を取得してメニューが作成されているので、
作成されたガントやユーザ等が多くなってくると
取得までに時間がかかってしまうようです...ページ読み込み時に一度だけ情報を取得し、それを使用すれば
表示速度の改善はできるのではないかと思いました。<script> (function() { var contextPath = AJS.contextPath(), isLoaded = false, isClicked = false, isHovered = false, ganttMenu, clone; AJS.$.ajax({ url: contextPath + '/rest/api/1.0/menus/wbsgantt_link?inAdminMode=false', type: 'GET', dataType: 'json' }).done(function(data) { var sections = data.sections, dropdownMenu = AJS.$('<aui-dropdown-menu>'); dropdownMenu.attr('id', 'wbsgantt_link-content-clone'); for (var i = 0, len = sections.length; i < len; i++) { (function(section) { var items = section.items, label = section.label, section = AJS.$('<aui-section>'); section.attr('label', label); for (var j = 0, len2 = items.length; j < len2; j++) { (function(item) { var url = item.url, title = item.label, itemLink = AJS.$('<aui-item-link resolved=""><a role="menuitem" tabindex="-1"></a></aui-item-link>'), a = itemLink.find('a'); itemLink.attr('href', url); if (item.iconUrl) { var img = AJS.$('<img>'); img.attr({ class: 'icon', src: item.iconUrl }); a.addClass('aui-icon-container'); a.append(img); } a.append(title); section.append(itemLink); })(items[j]); } dropdownMenu.append(section); })(sections[i]); } AJS.$('body').append(dropdownMenu); isLoaded = true; if (isClicked || isHovered) { setTimeout(function() { clone.click(); }, 0); } }).error(function() { console.error() }); AJS.toInit(function() { ganttMenu = document.getElementById('wbsgantt_link') || document.querySelector('[for="wbsgantt_link-content"]').firstElementChild; clone = ganttMenu.cloneNode(true); clone.setAttribute('aria-controls', 'wbsgantt_link-content-clone'); ganttMenu.style.display = 'none'; ganttMenu.parentElement.insertBefore(clone, ganttMenu.nextElementSibling); if (clone.id) { clone.addEventListener('click', function() { if (!isClicked) isClicked = true; else isClicked = false; }, false); } else { clone.addEventListener('mouseover', function() { isHovered = true; }, false); clone.addEventListener('mouseout', function() { isHovered = false; }, false); } }); })(); </script>
お知らせバナーに上記を挿入すれば
上手くいったように思えます。ただし、一度だけ取得する 2, 3 秒は同じなので、
ページ読み込み後すぐにメニューを表示させようとすると
少し時間はかかってしまいます...コメントを追加...
WBS ガントチャートを使用しているのですが、
Jira のトップバー > WBS ガントチャート を選択したときに表示される
メニューが遅くなってきました。
クリックしてから 2, 3 秒かかるのですが、
改善できないでしょうか。