Я бы не назвал это проблемой производительности. Так как реагирование происходит в одностороннем порядке с привязкой данных, разработчик должен решить, когда вызывать рендеринг (или отложить рендеринг). Виртуальный DOM должен быть синхронизирован.
В дополнение к этому вы можете использовать «onBlur» вместо «onChange», чтобы инициировать изменение только тогда, когда пользователь закончил печатать и сфокусировался.
<Form.Field>
<label style={{ float: 'left' }}>From</label>
<input
ref={i => {
this.reportDateStartedField = i
}}
onBlur={this.handleFieldChange.bind(this)}
type="date"
name="reportDateStarted"
defaultValue={filters.reportDateStarted}
max={todayDate}
style={{ fontSize: '0.9em' }}
/>
В приведенном выше случае вход будет «неуправляемым» (defaultValue), так как реагирование не знает об изменении, пока пользователь не сфокусируется на входе.
Установка STREAM_CLIENT_PERSISTENT
флаг после потокового создания препятствует тому, чтобы соединение бездействовало. Внутренне, флаг делает stream_socket_client()
звонить pfsockopen()
(документ) вместо fsockopen()
(документ).
Персистентность соединения ограничена серверным процессом, на котором было открыто соединение. Когда Ваш сценарий заканчивается, и Вы называете его снова, не может быть никакой гарантии, что тот же процесс обрабатывает Ваш запрос - другое соединение будет открыто в этом случае. Помещение соединения в $_SESSION
совместно использовать его не будет работать.