114
.emacs.d/elpa/impatient-mode-20200723.2117/index.html
Normal file
114
.emacs.d/elpa/impatient-mode-20200723.2117/index.html
Normal file
@ -0,0 +1,114 @@
|
||||
<!DOCTYPE html>
|
||||
<meta charset="utf-8">
|
||||
<script type="text/javascript" src="/imp/static/jquery.js"></script>
|
||||
<style type="text/css">
|
||||
html {
|
||||
overflow: auto;
|
||||
}
|
||||
html, body, div, iframe {
|
||||
margin: 0px;
|
||||
padding: 0px;
|
||||
height: 100%;
|
||||
border: none;
|
||||
}
|
||||
iframe {
|
||||
display: block;
|
||||
width: 100%;
|
||||
border: none;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
</style>
|
||||
|
||||
<iframe id="content"
|
||||
name="content"
|
||||
src="/imp/static/loading.html"
|
||||
frameborder="0"
|
||||
marginheight="0"
|
||||
marginwidth="0"
|
||||
width="100%"
|
||||
height="100%"
|
||||
scrolling="auto"
|
||||
content="text/html;charset=UTF-8">
|
||||
</iframe>
|
||||
|
||||
<script type="text/javascript">
|
||||
var buffer = window.location.pathname.split('/')[3];
|
||||
var max_period = 60000;
|
||||
var min_period = 1000;
|
||||
var next_period = min_period;
|
||||
var alpha = 1.2;
|
||||
var current_id = '-1';
|
||||
$('head').append($('<title/>').text(decodeURI(buffer)));
|
||||
|
||||
var nextTimeout = function() {
|
||||
var next = next_period;
|
||||
next_period = Math.min(max_period, next_period * alpha);
|
||||
return next;
|
||||
};
|
||||
|
||||
var resetTimeout = function() {
|
||||
next_period = min_period;
|
||||
};
|
||||
|
||||
var frameToDocument = function(iframe) {
|
||||
return (iframe.contentDocument) ? iframe.contentDocument : iframe.Document;
|
||||
};
|
||||
|
||||
var printIframe = function(data) {
|
||||
var iframeJQ = $('#content');
|
||||
var doc = frameToDocument(iframeJQ[0]);
|
||||
var iwindow = iframeJQ[0].contentWindow;
|
||||
var offX = iwindow.pageXOffset, offY = iwindow.pageYOffset;
|
||||
if (offY && offY >= $(doc.body).height() - $(iwindow).height()) {
|
||||
offY = null; // follow the end of the buffer
|
||||
}
|
||||
doc.open();
|
||||
doc.write(data);
|
||||
doc.close();
|
||||
iwindow.scrollTo(offX, offY != null ? offY : $(doc.body).height());
|
||||
};
|
||||
|
||||
var setIframe = function(count, newText) {
|
||||
if(!count) {
|
||||
// error parsing client result
|
||||
printIframe('0', 'error parsing the response from emacs');
|
||||
} else {
|
||||
current_id = count;
|
||||
printIframe(newText);
|
||||
}
|
||||
};
|
||||
|
||||
var refresh = function() {
|
||||
var url = "/imp/buffer/" + buffer;
|
||||
|
||||
var gotData = function(data, status, xhr) {
|
||||
resetTimeout();
|
||||
setIframe(xhr.getResponseHeader("X-Imp-Count"), data);
|
||||
refresh();
|
||||
};
|
||||
|
||||
var errorRetry = function() {
|
||||
setTimeout(refresh, nextTimeout());
|
||||
};
|
||||
|
||||
$.get(url + '?id=' + current_id, gotData).error(errorRetry);
|
||||
};
|
||||
|
||||
$(document).ready(function() {
|
||||
var iframeJQ = $('#content');
|
||||
iframeJQ.load(function() {
|
||||
// now we need to tweak the stylesheet links so that firefox will
|
||||
// refresh them properly
|
||||
$('link', frameToDocument(iframeJQ[0])).each(function(index, el) {
|
||||
var href = $(el).attr('href');
|
||||
// Only refresh impatient-mode hosted content
|
||||
if(href && !/^[a-zA-z]+:\/\//.exec(href)) {
|
||||
$(el).attr('href', $(el).attr('href') + '?' + new Date().getTime());
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
refresh();
|
||||
});
|
||||
</script>
|
Reference in New Issue
Block a user