From 152b1a2c8f5d0340f658bb656032a39b94e52958 Mon Sep 17 00:00:00 2001 From: Martin Angers Date: Wed, 31 Aug 2016 12:22:11 -0400 Subject: [PATCH] remove wiki section on big docs, cascadia is now almost as fast as workarounds --- doc/tips.md | 23 ----------------------- 1 file changed, 23 deletions(-) diff --git a/doc/tips.md b/doc/tips.md index 283ffdd..4e78952 100644 --- a/doc/tips.md +++ b/doc/tips.md @@ -1,28 +1,5 @@ # Tips and tricks -## Manipulate Big Documents - -Some CSS selectors are inherently slower than others, and when manipulating big documents (e.g. tables with thousands of rows), the performance may suffer. In particular, pseudo-classes such as `:nth-child` are slow, and while they are handy when manipulating smaller documents, they can be painful for bigger ones. - -In those cases, it can be order of magnitudes faster to use a simpler CSS selector and use goquery methods to do the finer-grained filtering. - -For example: - -``` -doc, err := goquery.NewDocumentFromReader(bigDocument) -if err != nil { - log.Fatal(err) -} - -// this could be much slower... -sel := doc.Find("#bigtable tr:nth-child(1) td") - -// than this: -sel := doc.Find("#bigtable tr").First().Find("td") -``` - -Other indexes in an `:nth-child(x)` can be translated to `sel.Eq(x)`. - ## Handle Non-UTF8 html Pages The `go.net/html` package used by `goquery` requires that the html document is UTF-8 encoded. When you know the encoding of the html page is not UTF-8, you can use the `iconv` package to convert it to UTF-8 (there are various implementation of the `iconv` API, see [godoc.org][iconv] for other options):