2017-02-15 20 views
0

У меня есть проект реагировать с некоторыми ниже кодом:запроса GET медленно события Прокрутки

componentDidMount() { 
    window.addEventListener('scroll', this.handleScroll); 
}; 

componentWillUnmount() { 
    window.removeEventListener('scroll', this.handleScroll); 
}; 

handleScroll(event) { 
    this.load(); 
}; 

load() { 
    console.log('Loading'); 
    $.get('/latest-dishes?page=1&items=6', function(data) { 
     console.log('Loaded'); 
     console.log(data); 
    }); 
} 

render() { 
    return (
     <div> 
      <button onClick={e => this.load()}>Load</button> 
     </div> 
    ) 
} 

Я бег сервера на локальном. Когда я нажимаю кнопку, данные сразу же загружаются.

Но, когда я прокручиваю «одну единицу», данные медленнее загружаются.

Я использую Google Chrome на Windows 7.

Почему это происходит?

UPDATE 1

Я тест этот проект, он хорошо работает на Firefox, эта проблема возникает на Chrome.

UPDATE 2

Эта проблема возникает на Chrome 56. Он хорошо работает на Chromium 58

+0

Каково использование функции 'load()' 'для' прокрутки' события 'окна'? С каждым прокруткой вы извлекаете сто раз ваши данные ... – dashtinejad

+0

Я прокручиваю только «Одно устройство». Кажется, это ошибка в chrome 56. –

+0

Что делает консоль? Консолирует ли журнал 'Loading' немедленно, когда вы прокручиваете« одну единицу »? – DomeTune

ответ

0

Использование компонента смонтирует вместо компонента было монтировать, так как компонент сделал крепление триггеров после начального состояния и визуализации, тогда как компонент смонтирует вызовет перед визуализацией

componentWillMount() { 
window.addEventListener('scroll', this.handleScroll);}; 

Прочитайте это для более Preferance :)

http://busypeoples.github.io/post/react-component-lifecycle/

+0

Эта проблема возникает только на хроме, Firefox работает хорошо, –

+0

Я использовал ваши коды, Без изменений. –

+0

Вместо того, чтобы называть другую функцию загрузки, загрузите ее на прокрутку .. –

 Смежные вопросы

  • Нет связанных вопросов^_^