Как сломать слайдер обратного вызова бесконечного цикла в тире? - PullRequest
0 голосов
/ 21 января 2019

У меня есть обратные вызовы:

@app.callback(Output('inter-yr', 'children'), [Input('year-slider', 'value')])
def saveYear(year):
    return json.dumps(year)

@app.callback(Output('inter-d1', 'children'), [Input('main-indicator', 'value'), Input('inter-yr', 'children')])
def loadData1fromAPI(ddval1, years):
    years = json.loads(years)
    json1 = getIndData(ddval1, '1', str(years))
    return json.dumps([json1, ddval1, years])

@app.callback(Output('inter-d2', 'children'), [Input('rel-indicator', 'value'), Input('inter-yr', 'children')])
def loadData2fromAPI(ddval2, years):    
    years = json.loads(years)    
    json2 = getIndData(ddval2, '2', str(years))
    return json.dumps([json2, ddval2, years])

Изменение ползунка приводит к вызову функций loadDataNfromAPI в бесконечном цикле. Это дорого, потому что getIndData получает данные из базы данных, и их много. Пока фокус == Правда это зацикливается. Когда я щелкаю где-то, он останавливается.

Как автоматически расфокусировать слайдер или найти какой-нибудь другой способ? Правильно ли написаны мои обратные вызовы? Может быть, я генерирую, но сам.

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

...