From 50121c8ab67d6990936ef831584476ccce8ea577 Mon Sep 17 00:00:00 2001 From: ansuz Date: Fri, 29 Jan 2016 12:28:11 +0100 Subject: [PATCH] a really basic collaborative input type="text" is typically slower than the same code when used to sync a textarea. WATCH OUT! --- www/input/index.html | 34 ++++++++++++++++++++++++++++++++++ www/input/main.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+) create mode 100644 www/input/index.html create mode 100644 www/input/main.js diff --git a/www/input/index.html b/www/input/index.html new file mode 100644 index 000000000..76b2ccbd4 --- /dev/null +++ b/www/input/index.html @@ -0,0 +1,34 @@ + + + + + + + + + + + + diff --git a/www/input/main.js b/www/input/main.js new file mode 100644 index 000000000..a50a657ed --- /dev/null +++ b/www/input/main.js @@ -0,0 +1,37 @@ +define([ + '/api/config?cb=' + Math.random().toString(16).substring(2), + '/common/realtime-input.js', + '/common/messages.js', + '/common/crypto.js', + '/bower_components/jquery/dist/jquery.min.js', + '/customize/pad.js' +], function (Config, + RTText, // RTText + Messages, + Crypto) { + + var $ = window.jQuery; + + var $textarea = $('input'); + + $(window).on('hashchange', function() { + window.location.reload(); + }); + if (window.location.href.indexOf('#') === -1) { + window.location.href = window.location.href + '#' + Crypto.genKey(); + return; + } + + var initialState = Messages.initialState; + + $textarea.val(initialState); + + var key = Crypto.parseKey(window.location.hash.substring(1)); + + var rttext = + RTText.start( $textarea[0], // window + Config.websocketURL, // websocketUrl + Crypto.rand64(8), // userName + key.channel, // channel + key.cryptKey); // cryptKey +});