Improved f-slider responsiveness. Cleaned up timer_handler code.

pull/2/head
miguel 2021-10-26 23:50:28 +11:00
rodzic 3cdde1170d
commit 8cf3b24d59
1 zmienionych plików z 44 dodań i 46 usunięć

Wyświetl plik

@ -59,7 +59,7 @@
</div>
<div class="sliders">
<label for="frequency_slider">f:</label>
<input type="range" id="frequency_slider" min="0.0" max="4.0" value="2.0" step="1.0">
<input type="range" id="frequency_slider" min="0.0" max="4.0" value="2.0" step="0.05">
</div>
</div>
<div id="notes" class="notes">
@ -126,6 +126,8 @@
</ul>
<br>
<b><u>Change history:</u></b><br>
<b>[26-Oct-21]</b> <br>
* Increased resolution of the f-slider, making it smoothly regenerate the dataset.
<b>[24-Oct-21]</b> <br>
* Fixed frozen f-slider issue that was occurring in some browsers running on Windows.<br>
* Increased contrast for experimental Ceff and SRF calculations, based on David Knight's (G3YNH) paper.
@ -494,7 +496,7 @@
frequencies = [];
//for(var i = 4.0; i <= 8.0; i+=0.01) {
var f = 1.0 * frequency_slider.value;
for(var i = 4.00+f; i <= 5.52+f; i+=0.01) {
for(var i = Math.floor(4.00+f); i <= 5.52+f; i+=0.01) {
frequencies.push(10.0**i);
}
}
@ -833,71 +835,67 @@
var conductor_diameter_timer_handler = 0;
conductor_diameter_slider.oninput = function() {
recalculate();
if(conductor_diameter_timer_handler == 0) {
conductor_diameter_timer_handler = setTimeout(function(){
updateChart();
conductor_diameter_timer_handler = 0;
}, emphasis_delay);
} else {
clearTimeout(conductor_diameter_timer_handler);
conductor_diameter_timer_handler = setTimeout(function(){
updateChart();
conductor_diameter_timer_handler = 0;
}, emphasis_delay);
// Check if we have exceeded the maximum turns:
const max_N = getMaxTurnsFrom();
if(max_N > toroid.N) {
loop_turns_slider.value = (toroid.N * 100.0) / max_N;
}
recalculate();
if(conductor_diameter_timer_handler != 0) {
clearTimeout(conductor_diameter_timer_handler);
}
conductor_diameter_timer_handler = setTimeout(function(){
updateChart();
conductor_diameter_timer_handler = 0;
}, emphasis_delay);
}
var loop_turns_timer_handler = 0;
loop_turns_slider.oninput = function() {
recalculate();
if(loop_turns_timer_handler == 0) {
loop_turns_timer_handler = setTimeout(function(){
updateChart();
loop_turns_timer_handler = 0;
}, emphasis_delay);
} else {
if(loop_turns_timer_handler != 0) {
clearTimeout(loop_turns_timer_handler);
loop_turns_timer_handler = setTimeout(function(){
updateChart();
loop_turns_timer_handler = 0;
}, emphasis_delay);
}
}
loop_turns_timer_handler = setTimeout(function(){
updateChart();
loop_turns_timer_handler = 0;
}, emphasis_delay);
generateTurnsRatioLUT(loop_turns_slider.value);
}
var frequency_timer_handler = 0;
frequency_slider.oninput = function() {
updateFrequencies();
recalculate();
if(frequency_timer_handler == 0) {
frequency_timer_handler = setTimeout(function(){
updateChart();
frequency_timer_handler = 0;
}, emphasis_delay);
} else {
if(frequency_timer_handler != 0) {
clearTimeout(frequency_timer_handler);
frequency_timer_handler = setTimeout(function(){
updateChart();
frequency_timer_handler = 0;
}, emphasis_delay);
}
frequency_timer_handler = setTimeout(function(){
updateChart();
frequency_timer_handler = 0;
}, emphasis_delay);
}
var voltage_timer_handler = 0;
voltage_slider.oninput = function() {
recalculate();
if(voltage_timer_handler == 0) {
voltage_timer_handler = setTimeout(function(){
updateChart();
voltage_timer_handler = 0;
}, emphasis_delay);
} else {
if(voltage_timer_handler != 0) {
clearTimeout(voltage_timer_handler);
voltage_timer_handler = setTimeout(function(){
updateChart();
voltage_timer_handler = 0;
}, emphasis_delay);
}
}
voltage_timer_handler = setTimeout(function(){
updateChart();
voltage_timer_handler = 0;
}, emphasis_delay);
}
window.onresize = function() {