Add comments to the selectorForAllWidgets function explaining the
authorMike Taylor <mike@indexdata.com>
Thu, 8 May 2014 15:17:04 +0000 (16:17 +0100)
committerMike Taylor <mike@indexdata.com>
Thu, 8 May 2014 15:17:04 +0000 (16:17 +0100)
differences between the two selector strings.

src/mkws-core.js

index 79e95e9..6371339 100644 (file)
@@ -429,10 +429,20 @@ mkws.pagerNext = function(tname) {
 
   function selectorForAllWidgets() {
     if (mkws.config.scan_all_nodes) {
-      log("scanning selector");
+      // This is the old version, which works by telling jQuery to
+      // find every node that has a class beginning with "mkws". In
+      // theory it should be slower than the class-based selector; but
+      // instrumentation suprisnigly shows this is consistently
+      // faster. It also has the advantage that any widgets of
+      // non-registered types are logged as warnings rather than
+      // silently ignored.
       return '[class^="mkws"],[class*=" mkws"]';
     } else {
-      log("class-based selector");
+      // This is the new version, which works by looking up the
+      // specific classes of all registered widget types. Because all
+      // it requires jQuery to do is some hash lookups in pre-built
+      // tables, it should be very fast; but it silently ignores
+      // widgets of unregistered types.
       var s = "";
       for (var type in mkws.widgetType2function) {
        if (s) s += ',';