mirror of
https://github.com/liriliri/eruda.git
synced 2026-03-20 09:38:37 +08:00
Del: SafeMutationObserver
This commit is contained in:
@@ -446,7 +446,7 @@ Logging methods.
|
|||||||
TRACE, DEBUG, INFO, WARN, ERROR and SILENT.
|
TRACE, DEBUG, INFO, WARN, ERROR and SILENT.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var logger = new Logger('eris', logger.level.ERROR);
|
var logger = new Logger('eris', Logger.level.ERROR);
|
||||||
logger.trace('test');
|
logger.trace('test');
|
||||||
|
|
||||||
// Format output.
|
// Format output.
|
||||||
@@ -468,12 +468,12 @@ logger.on('debug', function (argList)
|
|||||||
});
|
});
|
||||||
```
|
```
|
||||||
|
|
||||||
## SafeMutationObserver
|
## MutationObserver
|
||||||
|
|
||||||
Safe MutationObserver, does nothing if MutationObserver is not supported.
|
Safe MutationObserver, does nothing if MutationObserver is not supported.
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var observer = new DomObserver(function (mutations)
|
var observer = new MutationObserver(function (mutations)
|
||||||
{
|
{
|
||||||
// Do something.
|
// Do something.
|
||||||
});
|
});
|
||||||
@@ -678,15 +678,16 @@ Perform an asynchronous HTTP request.
|
|||||||
|
|
||||||
Available options:
|
Available options:
|
||||||
|
|
||||||
|Name |Type |Desc |
|
|Name |Type |Desc |
|
||||||
|-------------|-------------|------------------------|
|
|---------------------------------------------|-------------|---------------------------|
|
||||||
|url |string |Request url |
|
|url |string |Request url |
|
||||||
|data |string object|Request data |
|
|data |string object|Request data |
|
||||||
|dataType=json|string |Response type(json, xml)|
|
|dataType=json |string |Response type(json, xml) |
|
||||||
|success |function |Success callback |
|
|contentType=application/x-www-form-urlencoded|string |Request header Content-Type|
|
||||||
|error |function |Error callback |
|
|success |function |Success callback |
|
||||||
|complete |function |Callback after request |
|
|error |function |Error callback |
|
||||||
|timeout |number |Request timeout |
|
|complete |function |Callback after request |
|
||||||
|
|timeout |number |Request timeout |
|
||||||
|
|
||||||
### get
|
### get
|
||||||
|
|
||||||
@@ -792,10 +793,10 @@ castPath('a.b.c', {'a.b.c': true}); // -> ['a.b.c']
|
|||||||
|
|
||||||
Split array into groups the length of given size.
|
Split array into groups the length of given size.
|
||||||
|
|
||||||
|Name |Type |Desc |
|
|Name |Type |Desc |
|
||||||
|--------|------|--------------------|
|
|------|------|--------------------|
|
||||||
|arr |array |Array to process |
|
|arr |array |Array to process |
|
||||||
|[size=1]|number|Length of each chunk|
|
|size=1|number|Length of each chunk|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
chunk([1, 2, 3, 4], 2); // -> [[1, 2], [3, 4]]
|
chunk([1, 2, 3, 4], 2); // -> [[1, 2], [3, 4]]
|
||||||
@@ -1257,11 +1258,11 @@ identity('a'); // -> 'a'
|
|||||||
|
|
||||||
Get the index at which the first occurrence of value.
|
Get the index at which the first occurrence of value.
|
||||||
|
|
||||||
|Name |Type |Desc |
|
|Name |Type |Desc |
|
||||||
|-----------|------|--------------------|
|
|---------|------|--------------------|
|
||||||
|arr |array |Array to search |
|
|arr |array |Array to search |
|
||||||
|val |* |Value to search for |
|
|val |* |Value to search for |
|
||||||
|[fromIdx=0]|number|Index to search from|
|
|fromIdx=0|number|Index to search from|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
idxOf([1, 2, 1, 2], 2, 2); // -> 3
|
idxOf([1, 2, 1, 2], 2, 2); // -> 3
|
||||||
@@ -1996,7 +1997,7 @@ This accumulates the arguments passed into an array, after a given index.
|
|||||||
|return |function|Generated function with rest parameters|
|
|return |function|Generated function with rest parameters|
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
var paramArr = _.restArgs(function (rest) { return rest });
|
var paramArr = restArgs(function (rest) { return rest });
|
||||||
paramArr(1, 2, 3, 4); // -> [1, 2, 3, 4]
|
paramArr(1, 2, 3, 4); // -> [1, 2, 3, 4]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,23 +0,0 @@
|
|||||||
/* Safe MutationObserver, does nothing if MutationObserver is not supported.
|
|
||||||
*
|
|
||||||
* ```javascript
|
|
||||||
* var observer = new DomObserver(function (mutations)
|
|
||||||
* {
|
|
||||||
* // Do something.
|
|
||||||
* });
|
|
||||||
* observer.observe(document.htmlElement);
|
|
||||||
* observer.disconnect();
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
|
||||||
|
|
||||||
if (!exports)
|
|
||||||
{
|
|
||||||
exports = class MutationObserver {
|
|
||||||
constructor() {}
|
|
||||||
observe() {}
|
|
||||||
disconnect() {}
|
|
||||||
takeRecords() {}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@@ -8,7 +8,7 @@ import {
|
|||||||
evalCss,
|
evalCss,
|
||||||
$,
|
$,
|
||||||
keys,
|
keys,
|
||||||
SafeMutationObserver,
|
MutationObserver,
|
||||||
each,
|
each,
|
||||||
isErudaEl,
|
isErudaEl,
|
||||||
toStr,
|
toStr,
|
||||||
@@ -350,7 +350,7 @@ export default class Elements extends Tool
|
|||||||
}
|
}
|
||||||
_initObserver()
|
_initObserver()
|
||||||
{
|
{
|
||||||
this._observer = new SafeMutationObserver(mutations =>
|
this._observer = new MutationObserver(mutations =>
|
||||||
{
|
{
|
||||||
each(mutations, mutation => this._handleMutation(mutation));
|
each(mutations, mutation => this._handleMutation(mutation));
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ import {
|
|||||||
orientation,
|
orientation,
|
||||||
isCrossOrig,
|
isCrossOrig,
|
||||||
ajax,
|
ajax,
|
||||||
SafeMutationObserver,
|
MutationObserver,
|
||||||
isErudaEl,
|
isErudaEl,
|
||||||
toArr,
|
toArr,
|
||||||
concat,
|
concat,
|
||||||
@@ -408,7 +408,7 @@ export default class Resources extends Tool
|
|||||||
}
|
}
|
||||||
_initObserver()
|
_initObserver()
|
||||||
{
|
{
|
||||||
this._observer = new SafeMutationObserver(mutations =>
|
this._observer = new MutationObserver(mutations =>
|
||||||
{
|
{
|
||||||
let needToRender = false;
|
let needToRender = false;
|
||||||
each(mutations, mutation =>
|
each(mutations, mutation =>
|
||||||
|
|||||||
119
src/lib/util.js
119
src/lib/util.js
@@ -359,37 +359,6 @@ export var freeze = _.freeze = (function ()
|
|||||||
return exports;
|
return exports;
|
||||||
})();
|
})();
|
||||||
|
|
||||||
/* ------------------------------ SafeMutationObserver ------------------------------ */
|
|
||||||
|
|
||||||
export var SafeMutationObserver = _.SafeMutationObserver = (function (exports)
|
|
||||||
{
|
|
||||||
/* Safe MutationObserver, does nothing if MutationObserver is not supported.
|
|
||||||
*
|
|
||||||
* ```javascript
|
|
||||||
* var observer = new DomObserver(function (mutations)
|
|
||||||
* {
|
|
||||||
* // Do something.
|
|
||||||
* });
|
|
||||||
* observer.observe(document.htmlElement);
|
|
||||||
* observer.disconnect();
|
|
||||||
* ```
|
|
||||||
*/
|
|
||||||
|
|
||||||
exports = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
|
||||||
|
|
||||||
if (!exports)
|
|
||||||
{
|
|
||||||
exports = class MutationObserver {
|
|
||||||
constructor() {}
|
|
||||||
observe() {}
|
|
||||||
disconnect() {}
|
|
||||||
takeRecords() {}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
return exports;
|
|
||||||
})({});
|
|
||||||
|
|
||||||
/* ------------------------------ noop ------------------------------ */
|
/* ------------------------------ noop ------------------------------ */
|
||||||
|
|
||||||
export var noop = _.noop = (function ()
|
export var noop = _.noop = (function ()
|
||||||
@@ -626,10 +595,10 @@ export var chunk = _.chunk = (function ()
|
|||||||
{
|
{
|
||||||
/* Split array into groups the length of given size.
|
/* Split array into groups the length of given size.
|
||||||
*
|
*
|
||||||
* |Name |Type |Desc |
|
* |Name |Type |Desc |
|
||||||
* |--------|------|--------------------|
|
* |------|------|--------------------|
|
||||||
* |arr |array |Array to process |
|
* |arr |array |Array to process |
|
||||||
* |[size=1]|number|Length of each chunk|
|
* |size=1|number|Length of each chunk|
|
||||||
*
|
*
|
||||||
* ```javascript
|
* ```javascript
|
||||||
* chunk([1, 2, 3, 4], 2); // -> [[1, 2], [3, 4]]
|
* chunk([1, 2, 3, 4], 2); // -> [[1, 2], [3, 4]]
|
||||||
@@ -718,11 +687,11 @@ export var idxOf = _.idxOf = (function ()
|
|||||||
{
|
{
|
||||||
/* Get the index at which the first occurrence of value.
|
/* Get the index at which the first occurrence of value.
|
||||||
*
|
*
|
||||||
* |Name |Type |Desc |
|
* |Name |Type |Desc |
|
||||||
* |-----------|------|--------------------|
|
* |---------|------|--------------------|
|
||||||
* |arr |array |Array to search |
|
* |arr |array |Array to search |
|
||||||
* |val |* |Value to search for |
|
* |val |* |Value to search for |
|
||||||
* |[fromIdx=0]|number|Index to search from|
|
* |fromIdx=0|number|Index to search from|
|
||||||
*
|
*
|
||||||
* ```javascript
|
* ```javascript
|
||||||
* idxOf([1, 2, 1, 2], 2, 2); // -> 3
|
* idxOf([1, 2, 1, 2], 2, 2); // -> 3
|
||||||
@@ -3826,6 +3795,46 @@ export var Enum = _.Enum = (function (exports)
|
|||||||
return exports;
|
return exports;
|
||||||
})({});
|
})({});
|
||||||
|
|
||||||
|
/* ------------------------------ MutationObserver ------------------------------ */
|
||||||
|
|
||||||
|
export var MutationObserver = _.MutationObserver = (function (exports)
|
||||||
|
{
|
||||||
|
/* Safe MutationObserver, does nothing if MutationObserver is not supported.
|
||||||
|
*
|
||||||
|
* ```javascript
|
||||||
|
* var observer = new MutationObserver(function (mutations)
|
||||||
|
* {
|
||||||
|
* // Do something.
|
||||||
|
* });
|
||||||
|
* observer.observe(document.htmlElement);
|
||||||
|
* observer.disconnect();
|
||||||
|
* ```
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* module
|
||||||
|
* env: browser
|
||||||
|
* test: browser
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* dependencies
|
||||||
|
* Class
|
||||||
|
*/
|
||||||
|
|
||||||
|
exports = window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;
|
||||||
|
|
||||||
|
if (!exports)
|
||||||
|
{
|
||||||
|
exports = Class({
|
||||||
|
initialize: function MutationObserver() {},
|
||||||
|
observe: function () {},
|
||||||
|
disconnect: function () {},
|
||||||
|
takeRecords: function () {}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
return exports;
|
||||||
|
})({});
|
||||||
|
|
||||||
/* ------------------------------ Select ------------------------------ */
|
/* ------------------------------ Select ------------------------------ */
|
||||||
|
|
||||||
export var Select = _.Select = (function (exports)
|
export var Select = _.Select = (function (exports)
|
||||||
@@ -5525,7 +5534,7 @@ export var restArgs = _.restArgs = (function ()
|
|||||||
* |return |function|Generated function with rest parameters|
|
* |return |function|Generated function with rest parameters|
|
||||||
*
|
*
|
||||||
* ```javascript
|
* ```javascript
|
||||||
* var paramArr = _.restArgs(function (rest) { return rest });
|
* var paramArr = restArgs(function (rest) { return rest });
|
||||||
* paramArr(1, 2, 3, 4); // -> [1, 2, 3, 4]
|
* paramArr(1, 2, 3, 4); // -> [1, 2, 3, 4]
|
||||||
* ```
|
* ```
|
||||||
*/
|
*/
|
||||||
@@ -5787,7 +5796,7 @@ export var Logger = _.Logger = (function (exports)
|
|||||||
* TRACE, DEBUG, INFO, WARN, ERROR and SILENT.
|
* TRACE, DEBUG, INFO, WARN, ERROR and SILENT.
|
||||||
*
|
*
|
||||||
* ```javascript
|
* ```javascript
|
||||||
* var logger = new Logger('eris', logger.level.ERROR);
|
* var logger = new Logger('eris', Logger.level.ERROR);
|
||||||
* logger.trace('test');
|
* logger.trace('test');
|
||||||
*
|
*
|
||||||
* // Format output.
|
* // Format output.
|
||||||
@@ -6928,15 +6937,16 @@ export var ajax = _.ajax = (function ()
|
|||||||
*
|
*
|
||||||
* Available options:
|
* Available options:
|
||||||
*
|
*
|
||||||
* |Name |Type |Desc |
|
* |Name |Type |Desc |
|
||||||
* |-------------|-------------|------------------------|
|
* |---------------------------------------------|-------------|---------------------------|
|
||||||
* |url |string |Request url |
|
* |url |string |Request url |
|
||||||
* |data |string object|Request data |
|
* |data |string object|Request data |
|
||||||
* |dataType=json|string |Response type(json, xml)|
|
* |dataType=json |string |Response type(json, xml) |
|
||||||
* |success |function |Success callback |
|
* |contentType=application/x-www-form-urlencoded|string |Request header Content-Type|
|
||||||
* |error |function |Error callback |
|
* |success |function |Success callback |
|
||||||
* |complete |function |Callback after request |
|
* |error |function |Error callback |
|
||||||
* |timeout |number |Request timeout |
|
* |complete |function |Callback after request |
|
||||||
|
* |timeout |number |Request timeout |
|
||||||
*
|
*
|
||||||
* ### get
|
* ### get
|
||||||
*
|
*
|
||||||
@@ -7026,13 +7036,15 @@ export var ajax = _.ajax = (function ()
|
|||||||
{
|
{
|
||||||
data = query.stringify(data);
|
data = query.stringify(data);
|
||||||
url += url.indexOf('?') > -1 ? '&' + data : '?' + data;
|
url += url.indexOf('?') > -1 ? '&' + data : '?' + data;
|
||||||
} else
|
} else if (options.contentType === 'application/x-www-form-urlencoded')
|
||||||
{
|
{
|
||||||
if(isObj(data)) data = query.stringify(data);
|
if(isObj(data)) data = query.stringify(data);
|
||||||
|
} else if (options.contentType === 'application/json') {
|
||||||
|
if(isObj(data)) data = JSON.stringify(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
xhr.open(type, url, true);
|
xhr.open(type, url, true);
|
||||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
xhr.setRequestHeader('Content-Type', options.contentType);
|
||||||
|
|
||||||
if (timeout > 0)
|
if (timeout > 0)
|
||||||
{
|
{
|
||||||
@@ -7055,6 +7067,7 @@ export var ajax = _.ajax = (function ()
|
|||||||
error: noop,
|
error: noop,
|
||||||
complete: noop,
|
complete: noop,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
|
contentType: 'application/x-www-form-urlencoded',
|
||||||
data: {},
|
data: {},
|
||||||
xhr: function () { return new XMLHttpRequest() },
|
xhr: function () { return new XMLHttpRequest() },
|
||||||
timeout: 0
|
timeout: 0
|
||||||
|
|||||||
26
test/util.js
26
test/util.js
@@ -1802,15 +1802,16 @@
|
|||||||
*
|
*
|
||||||
* Available options:
|
* Available options:
|
||||||
*
|
*
|
||||||
* |Name |Type |Desc |
|
* |Name |Type |Desc |
|
||||||
* |-------------|-------------|------------------------|
|
* |---------------------------------------------|-------------|---------------------------|
|
||||||
* |url |string |Request url |
|
* |url |string |Request url |
|
||||||
* |data |string object|Request data |
|
* |data |string object|Request data |
|
||||||
* |dataType=json|string |Response type(json, xml)|
|
* |dataType=json |string |Response type(json, xml) |
|
||||||
* |success |function |Success callback |
|
* |contentType=application/x-www-form-urlencoded|string |Request header Content-Type|
|
||||||
* |error |function |Error callback |
|
* |success |function |Success callback |
|
||||||
* |complete |function |Callback after request |
|
* |error |function |Error callback |
|
||||||
* |timeout |number |Request timeout |
|
* |complete |function |Callback after request |
|
||||||
|
* |timeout |number |Request timeout |
|
||||||
*
|
*
|
||||||
* ### get
|
* ### get
|
||||||
*
|
*
|
||||||
@@ -1900,13 +1901,15 @@
|
|||||||
{
|
{
|
||||||
data = query.stringify(data);
|
data = query.stringify(data);
|
||||||
url += url.indexOf('?') > -1 ? '&' + data : '?' + data;
|
url += url.indexOf('?') > -1 ? '&' + data : '?' + data;
|
||||||
} else
|
} else if (options.contentType === 'application/x-www-form-urlencoded')
|
||||||
{
|
{
|
||||||
if(isObj(data)) data = query.stringify(data);
|
if(isObj(data)) data = query.stringify(data);
|
||||||
|
} else if (options.contentType === 'application/json') {
|
||||||
|
if(isObj(data)) data = JSON.stringify(data);
|
||||||
}
|
}
|
||||||
|
|
||||||
xhr.open(type, url, true);
|
xhr.open(type, url, true);
|
||||||
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
|
xhr.setRequestHeader('Content-Type', options.contentType);
|
||||||
|
|
||||||
if (timeout > 0)
|
if (timeout > 0)
|
||||||
{
|
{
|
||||||
@@ -1929,6 +1932,7 @@
|
|||||||
error: noop,
|
error: noop,
|
||||||
complete: noop,
|
complete: noop,
|
||||||
dataType: 'json',
|
dataType: 'json',
|
||||||
|
contentType: 'application/x-www-form-urlencoded',
|
||||||
data: {},
|
data: {},
|
||||||
xhr: function () { return new XMLHttpRequest() },
|
xhr: function () { return new XMLHttpRequest() },
|
||||||
timeout: 0
|
timeout: 0
|
||||||
|
|||||||
Reference in New Issue
Block a user