Skip to content

Commit 6f60c92

Browse files
committed
v.5.0.0 contd
* minor optimization when updating atts
1 parent e27f2b1 commit 6f60c92

4 files changed

Lines changed: 47 additions & 47 deletions

File tree

build/modelview.bundle.js

Lines changed: 3 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build/modelview.js

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
*
33
* ModelView.js
44
* @version: 5.0.0
5-
* @built on 2022-03-24 18:28:12
5+
* @built on 2022-03-25 10:21:59
66
*
77
* A simple, light-weight, versatile and fast isomorphic MVVM JavaScript framework (Browser and Server)
88
* https://github.com/foo123/modelview.js
@@ -11,7 +11,7 @@
1111
*
1212
* ModelView.js
1313
* @version: 5.0.0
14-
* @built on 2022-03-24 18:28:12
14+
* @built on 2022-03-25 10:21:59
1515
*
1616
* A simple, light-weight, versatile and fast isomorphic MVVM JavaScript framework (Browser and Server)
1717
* https://github.com/foo123/modelview.js
@@ -1442,31 +1442,37 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified)
14421442
v = a[i].value;
14431443
if (!is_instance(v, Value))
14441444
{
1445-
node.uAtts = (function(u, i) {
1445+
node.uAtts = (function(u, a) {
14461446
return u ? function(view, r, v) {
14471447
u(view, r, v);
1448-
u_att(r, v, v.attributes[i]);
1448+
var att = a.name, val = a.value;
1449+
if (false === val) del_att(r, att, v.nodeType);
1450+
else set_att(r, att, val, v.nodeType);
14491451
} : function(view, r, v) {
1450-
u_att(r, v, v.attributes[i]);
1452+
var att = a.name, val = a.value;
1453+
if (false === val) del_att(r, att, v.nodeType);
1454+
else set_att(r, att, val, v.nodeType);
14511455
};
1452-
})(node.uAtts, i);
1456+
})(node.uAtts, a[i]);
14531457
}
14541458
else if (v.changed())
14551459
{
1456-
node.uAtts = (function(u, i) {
1460+
node.uAtts = (function(u, a) {
14571461
return u ? function(view, r, v) {
14581462
u(view, r, v);
1459-
var a = v.attributes[i];
1460-
if (a.value.id()) view.$reset[a.value.id()] = a.value;
1461-
a.value = a.value.val();
1462-
u_att(r, v, a);
1463+
var att = a.name, val = a.value;
1464+
if (val.id()) view.$reset[val.id()] = val;
1465+
val = val.val();
1466+
if (false === val) del_att(r, att, v.nodeType);
1467+
else set_att(r, att, val, v.nodeType);
14631468
} : function(view, r, v) {
1464-
var a = v.attributes[i];
1465-
if (a.value.id()) view.$reset[a.value.id()] = a.value;
1466-
a.value = a.value.val();
1467-
u_att(r, v, a);
1469+
var att = a.name, val = a.value;
1470+
if (val.id()) view.$reset[val.id()] = val;
1471+
val = val.val();
1472+
if (false === val) del_att(r, att, v.nodeType);
1473+
else set_att(r, att, val, v.nodeType);
14681474
};
1469-
})(node.uAtts, i);
1475+
})(node.uAtts, a[i]);
14701476
}
14711477
}
14721478
});
@@ -2112,12 +2118,6 @@ function morphAttsAll(view, r, v)
21122118
}
21132119
return r;
21142120
}
2115-
function u_att(r, v, a)
2116-
{
2117-
var n = a.name, v = a.value;
2118-
if (false === v) del_att(r, n, v.nodeType/*, lower(v[TYPE]||'')*/);
2119-
else set_att(r, n, v, v.nodeType/*, lower(v[TYPE]||'')*/);
2120-
}
21212121
function morphAtts(view, r, v)
21222122
{
21232123
var count, mi, mc, m, mp, match, matched,

build/modelview.min.js

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/utils.js

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1394,31 +1394,37 @@ function htmlNode(view, nodeType, id, type, atts, children, value2, modified)
13941394
v = a[i].value;
13951395
if (!is_instance(v, Value))
13961396
{
1397-
node.uAtts = (function(u, i) {
1397+
node.uAtts = (function(u, a) {
13981398
return u ? function(view, r, v) {
13991399
u(view, r, v);
1400-
u_att(r, v, v.attributes[i]);
1400+
var att = a.name, val = a.value;
1401+
if (false === val) del_att(r, att, v.nodeType);
1402+
else set_att(r, att, val, v.nodeType);
14011403
} : function(view, r, v) {
1402-
u_att(r, v, v.attributes[i]);
1404+
var att = a.name, val = a.value;
1405+
if (false === val) del_att(r, att, v.nodeType);
1406+
else set_att(r, att, val, v.nodeType);
14031407
};
1404-
})(node.uAtts, i);
1408+
})(node.uAtts, a[i]);
14051409
}
14061410
else if (v.changed())
14071411
{
1408-
node.uAtts = (function(u, i) {
1412+
node.uAtts = (function(u, a) {
14091413
return u ? function(view, r, v) {
14101414
u(view, r, v);
1411-
var a = v.attributes[i];
1412-
if (a.value.id()) view.$reset[a.value.id()] = a.value;
1413-
a.value = a.value.val();
1414-
u_att(r, v, a);
1415+
var att = a.name, val = a.value;
1416+
if (val.id()) view.$reset[val.id()] = val;
1417+
val = val.val();
1418+
if (false === val) del_att(r, att, v.nodeType);
1419+
else set_att(r, att, val, v.nodeType);
14151420
} : function(view, r, v) {
1416-
var a = v.attributes[i];
1417-
if (a.value.id()) view.$reset[a.value.id()] = a.value;
1418-
a.value = a.value.val();
1419-
u_att(r, v, a);
1421+
var att = a.name, val = a.value;
1422+
if (val.id()) view.$reset[val.id()] = val;
1423+
val = val.val();
1424+
if (false === val) del_att(r, att, v.nodeType);
1425+
else set_att(r, att, val, v.nodeType);
14201426
};
1421-
})(node.uAtts, i);
1427+
})(node.uAtts, a[i]);
14221428
}
14231429
}
14241430
});
@@ -2064,12 +2070,6 @@ function morphAttsAll(view, r, v)
20642070
}
20652071
return r;
20662072
}
2067-
function u_att(r, v, a)
2068-
{
2069-
var n = a.name, v = a.value;
2070-
if (false === v) del_att(r, n, v.nodeType/*, lower(v[TYPE]||'')*/);
2071-
else set_att(r, n, v, v.nodeType/*, lower(v[TYPE]||'')*/);
2072-
}
20732073
function morphAtts(view, r, v)
20742074
{
20752075
var count, mi, mc, m, mp, match, matched,

0 commit comments

Comments
 (0)