update README and add travis
This commit is contained in:
14
.travis.yml
Normal file
14
.travis.yml
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
language: node_js
|
||||||
|
|
||||||
|
node_js:
|
||||||
|
- 10
|
||||||
|
|
||||||
|
cache:
|
||||||
|
directories:
|
||||||
|
- 'node_modules'
|
||||||
|
|
||||||
|
install:
|
||||||
|
- npm install
|
||||||
|
|
||||||
|
script:
|
||||||
|
- npm test
|
||||||
32
README.md
32
README.md
@@ -1,4 +1,36 @@
|
|||||||
# rrweb-snapshot
|
# rrweb-snapshot
|
||||||
|
|
||||||
|
[](https://travis-ci.org/rrweb-io/rrweb-snapshot)
|
||||||
|
|
||||||
Snapshot the DOM into a stateful and serializable data structure.
|
Snapshot the DOM into a stateful and serializable data structure.
|
||||||
Also provide the ability to rebuild the DOM via snapshot.
|
Also provide the ability to rebuild the DOM via snapshot.
|
||||||
|
|
||||||
|
## API
|
||||||
|
|
||||||
|
This module export 3 methods:
|
||||||
|
|
||||||
|
### snapshot
|
||||||
|
|
||||||
|
`snapshot` will traverse the DOM and return a stateful and serializable data structure which can represent the current DOM **view**.
|
||||||
|
|
||||||
|
There are serveral things will be done during snapshot:
|
||||||
|
|
||||||
|
1. Inline some DOM states into HTML attributes, e.g, HTMLInputElement's value.
|
||||||
|
2. Turn script tags into noscript tags to avoid scripts being executed.
|
||||||
|
3. Try to inline stylesheets to make sure local stylesheets can be used.
|
||||||
|
4. Make relative paths in href, src, css to be absolute paths.
|
||||||
|
5. Give a id to each Node, and return the id node map when snapshot finished.
|
||||||
|
|
||||||
|
#### rebuild
|
||||||
|
|
||||||
|
`rebuild` will build the DOM according to the taken snapshot.
|
||||||
|
|
||||||
|
There are serveral things will be done during rebuild:
|
||||||
|
|
||||||
|
1. Add data-rrid attribute if Node is an Element.
|
||||||
|
2. Create some extra DOM node like text node to place inline css and some states.
|
||||||
|
3. Add data-extra-child-index attribute if Node has some extra child DOM.
|
||||||
|
|
||||||
|
#### serializeNodeWithId
|
||||||
|
|
||||||
|
`serializeNodeWithId` can serialize a node into snapshot format with id.
|
||||||
|
|||||||
@@ -71,7 +71,6 @@ describe('integration tests', () => {
|
|||||||
this.server = await server();
|
this.server = await server();
|
||||||
this.browser = await puppeteer.launch({
|
this.browser = await puppeteer.launch({
|
||||||
// headless: false,
|
// headless: false,
|
||||||
executablePath: '/home/yanzhen/Desktop/chrome-linux/chrome',
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const bundle = await rollup.rollup({
|
const bundle = await rollup.rollup({
|
||||||
|
|||||||
Reference in New Issue
Block a user