|
203 | 203 |
|
204 | 204 | // 上方向の事前読み込み処理 |
205 | 205 | if (visibleLines.value[0] < minLineNumber.value + prefetchThreshold && |
206 | | - !loadingRequests.value.find(x => x.end === minLineNumber.value - 1)) { |
| 206 | + !loadingRequests.value.find(x => x.end === minLineNumber.value - 1) && |
| 207 | + minLineNumber.value > 0) { |
207 | 208 | log(() => `request by intersect ${visibleLines.value[0]}`); |
208 | 209 | requestLogs(minLineNumber.value - prefetchLines, minLineNumber.value - 1); |
209 | 210 | } |
210 | 211 |
|
211 | 212 | // 下方向の事前読み込み処理 |
212 | 213 | if (visibleLines.value[visibleLines.value.length - 1] > maxLineNumber.value - prefetchThreshold && |
213 | | - !loadingRequests.value.find(x => x.start === maxLineNumber.value + 1)) { |
| 214 | + !loadingRequests.value.find(x => x.start === maxLineNumber.value + 1) && |
| 215 | + totalLines.value > maxLineNumber.value) { |
214 | 216 | log(() => `request by intersect ${visibleLines.value[visibleLines.value.length - 1]}`); |
215 | 217 | requestLogs(maxLineNumber.value + 1, maxLineNumber.value + prefetchLines); |
216 | 218 | } |
|
319 | 321 | }, { deep: true }); |
320 | 322 |
|
321 | 323 | watch(totalLines, () => { |
322 | | - updateScrollAreaHeight(); |
| 324 | + if (visibleLines.value[visibleLines.value.length - 1] > maxLineNumber.value - prefetchThreshold && |
| 325 | + !loadingRequests.value.find(x => x.start === maxLineNumber.value + 1) && |
| 326 | + totalLines.value > maxLineNumber.value) { |
| 327 | + // 次行取得閾値を超えている場合、追加行取得を行う |
| 328 | + requestLogs(maxLineNumber.value + 1, maxLineNumber.value + prefetchLines); |
| 329 | + }else{ |
| 330 | + // 最終行が表示されていない場合、スクロールエリアの高さの更新のみ行う |
| 331 | + updateScrollAreaHeight(); |
| 332 | + } |
323 | 333 | }); |
324 | 334 |
|
325 | 335 | watch(() => props.wrapLines, () => { |
|
0 commit comments