我正在使用AG Grid React。我有一千行数据。我正在尝试根据索引选择行范围。
mail($to,$subject,$message,youremail@example.com);
事实证明,这非常播种,通常需要30秒才能在UI上完成。好像from bs4 import BeautifulSoup as bs
import requests
import pandas as pd
url = requests.get("http://stats.espncricinfo.com/ci/content/records/307847.html" )
soup = bs(url.text, 'lxml')
soup_1 = soup.find(class_ = "recordsTable")
soup_pages = soup_1.find_all('a', href= True)
state_links =[]
for link in soup_pages:
state_links.append(link['href'])
for i in state_links:
parse_link = "http://stats.espncricinfo.com"+i
url_new = requests.get(parse_link)
soup_new = bs(url_new.text, 'lxml')
soup_table = soup_new.find(class_="engineTable")
results = {}
newdict = dict()
for col in soup_table.findAll('th'):
colname = (col.text).lstrip().rstrip()
for row in soup_table.findAll("td"):
rowname = row.text.lstrip().rstrip()
newdict[col.text] = row.text
print (newdict)
会触发多个渲染周期。正确的做法是什么?
答案 0 :(得分:0)
您可以尝试使用分页加载整个数据块。 Pagination Docs
答案 1 :(得分:0)
请确保您尚未订阅任何可能导致代码运行缓慢的事件,例如onRowSelected,onSelectionChanged。这些会为每个
触发node.setSelected(true)
如果您确实具有这些已订阅事件中的任何一个,解决此问题的一种可能方法是在循环之前取消订阅,然后在循环之后重新订阅。
此外,根据您的用例,您可能要使用
forEachNodeAfterFilter(node)
为了只遍历可见节点而不是
forEachNode(节点)
答案 2 :(得分:0)
问题是-setSelected(newValue)
调度事件。当我们循环处理一千个项目( say )时-有一千个事件,一千个请求排队等待React中的异步更新,这可以解决所有延迟。
我使用setSelected
-setSelected(newValue, clearSelection, suppressFinishActions)
的另一个版本对其进行了修复。不幸的是,这没有写在官方文档中。
想法是将此版本用于除最后一个之外的所有内容,以便所有事件分派都被禁止,并使用我们一直使用的常规选择来选择最后一个元素,以便它也触发必要的onRowSelected
,onSelectionChanged
等事件正常工作。
this.api.forEachNodeAfterFilter(node => {
if (node.childIndex >= startIndex && node.childIndex < endIndex) {
selectedNodes.push(node);
}
});
if (selectedNodes.length > 0) {
// setSelected re-renders every time so use suppressFinishActions except last one
for (let i = 0; i < selectedNodes.length - 1; i++) {
selectedNodes[i].setSelected(true, false, true);
}
selectedNodes[selectedNodes.length - 1].setSelected(true);
}