Merge pull request #2543 from LenAnderson/streaming-performance Remove DOM queries and jQuery during streaming
Signed| @@ -2797,6 +2797,10 @@ class StreamingProcessor { | ||
| 2797 | 2797 | constructor(type, force_name2, timeStarted, messageAlreadyGenerated) { |
| 2798 | 2798 | this.result = ''; |
| 2799 | 2799 | this.messageId = -1; |
| 2800 | + this.messageDom = null; | |
| 2801 | + this.messageTextDom = null; | |
| 2802 | + this.messageTimerDom = null; | |
| 2803 | + this.sendTextarea = document.querySelector('#send_textarea'); | |
| 2800 | 2804 | this.type = type; |
| 2801 | 2805 | this.force_name2 = force_name2; |
| 2802 | 2806 | this.isStopped = false; |
| @@ -2833,11 +2837,15 @@ class StreamingProcessor { | ||
| 2833 | 2837 | let messageId = -1; |
| 2834 | 2838 | |
| 2835 | 2839 | if (this.type == 'impersonate') { |
| 2836 | - $('#send_textarea').val('')[0].dispatchEvent(new Event('input', { bubbles: true })); | |
| 2840 | + this.sendTextarea.value = ''; | |
| 2841 | + this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true })); | |
| 2837 | 2842 | } |
| 2838 | 2843 | else { |
| 2839 | 2844 | await saveReply(this.type, text, true); |
| 2840 | 2845 | messageId = chat.length - 1; |
| 2846 | + this.messageDom = document.querySelector(`#chat .mes[mesid="${messageId}"]`); | |
| 2847 | + this.messageTextDom = this.messageDom.querySelector('.mes_text'); | |
| 2848 | + this.messageTimerDom = this.messageDom.querySelector('.mes_timer'); | |
| 2841 | 2849 | this.showMessageButtons(messageId); |
| 2842 | 2850 | } |
| 2843 | 2851 | |
| @@ -2869,7 +2877,8 @@ class StreamingProcessor { | ||
| 2869 | 2877 | } |
| 2870 | 2878 | |
| 2871 | 2879 | if (isImpersonate) { |
| 2872 | - $('#send_textarea').val(processedText)[0].dispatchEvent(new Event('input', { bubbles: true })); | |
| 2880 | + this.sendTextarea.value = processedText; | |
| 2881 | + this.sendTextarea.dispatchEvent(new Event('input', { bubbles: true })); | |
| 2873 | 2882 | } |
| 2874 | 2883 | else { |
| 2875 | 2884 | let currentTime = new Date(); |
| @@ -2902,9 +2911,9 @@ class StreamingProcessor { | ||
| 2902 | 2911 | chat[messageId].is_user, |
| 2903 | 2912 | messageId, |
| 2904 | 2913 | ); |
| 2905 | - const mesText = $(`#chat .mes[mesid="${messageId}"] .mes_text`); | |
| 2914 | + this.messageTextDom.innerHTML = formattedText; | |
| 2906 | - mesText.html(formattedText); | |
| 2915 | + this.messageTimerDom.textContent = timePassed.timerValue; | |
| 2907 | - $(`#chat .mes[mesid="${messageId}"] .mes_timer`).text(timePassed.timerValue).attr('title', timePassed.timerTitle); | |
| 2916 | + this.messageTimerDom.title = timePassed.timerTitle; | |
| 2908 | 2917 | this.setFirstSwipe(messageId); |
| 2909 | 2918 | } |
| 2910 | 2919 | |