0
요청 당 21 초, snippet.json 및 이미지. 내 도구가 42 초 안에로드됩니다. 일관되게. 그것은 단지 이상하게 보입니다. 에코 REBOX는 Heroku가에서 호스팅되는 레일 응용 프로그램입니다 -API 요청은 요청 당 21 초 걸립니다.
, 액션에서 볼 http://alphabeticdesign.com/test을 확인하려면
<script type="text/javascript">
function fetchJSONFile(path, callback) {
var httpRequest = new XMLHttpRequest();
httpRequest.onreadystatechange = function() {
if (httpRequest.readyState === 4) {
if (httpRequest.status === 200) {
var data = JSON.parse(httpRequest.responseText);
if (callback) callback(data);
};
};
};
httpRequest.open('GET', path);
httpRequest.send();
}
// this requires the file and executes a callback with the parsed result once available
fetchJSONFile('http://ecorebox.com/companies/1/snippet.json', function(data){
// do what you do
var trees = data['trees'];
var water = data['water'];
var energy = data['electricity'];
var widget = document.createElement("div");
widget.id = 'erb_widget';
widget.style.width = "200px";
widget.style.height = "400px";
widget.style.font = '14px';
widget.style.src = "local('Oswald Light'), local('Oswald-Light'), url(http://themes.googleusercontent.com/static/fonts/oswald/v7/HqHm7BVC_nzzTui2lzQTDT8E0i7KZn-EPnyo3HZu7kw.woff) format('woff')";
widget.style.color = '#666';
widget.style.border = 'solid 1px #666';
var logo = document.createElement("div");
logo.id = 'erbw_logo';
logo.style.background = "url(http://ecorebox.com/assets/narrow_200px_logo.png) no-repeat";
logo.style.height = '29px';
logo.style.width = '109px';
logo.style.margin = '20px auto';
var txt = document.createElement("div");
txt.id = 'erbw_txt';
txt.style.font = 'bold 13px';
txt.style.margin = '5px';
var cs_trees = document.createElement("div");
cs_trees.id = 'erbw_cs_trees';
cs_trees.style.background = "url(http://ecorebox.com/assets/erbw_ico_tree.png) no-repeat";
cs_trees.style.height = '61px';
cs_trees.style.margin = '20px';
cs_trees.innerHTML = "<div style='margin: 12px auto auto 62px; font: 14px bold;'><span style='font: 22px bolder'>" + trees + "</span><br/>Trees Saved</div>";
var cs_water = document.createElement("div");
cs_water.id = 'erbw_cs_water';
cs_water.style.background = "url(http://ecorebox.com/assets/erbw_ico_water.png) no-repeat";
cs_water.style.height = '61px';
cs_water.style.margin = '20px';
cs_water.innerHTML = "<div style='margin: 12px auto auto 62px; font: 14px bold;'><span style='font: 22px bolder'>" + water + "</span><br/>Gallons of Water Conserved</div>";
var cs_energy = document.createElement("div");
cs_energy.id = 'erbw_cs_energy';
cs_energy.style.background = "url(http://ecorebox.com/assets/erbw_ico_energy.png) no-repeat";
cs_energy.style.height = '61px';
cs_energy.style.margin = '20px';
cs_energy.innerHTML = "<div style='margin: 12px auto auto 62px; font: 14px bold;'><span style='font: 22px bolder'>" + energy + "</span><br/>kWh Energy Saved</div>";
var footer = document.createElement("div");
footer.id = 'erbw_footer';
footer.style.font = 'bolder 14px';
footer.style.textAlign = 'center';
footer.style.padding = '10px';
footer.style.margin = '10px';
footer.innerHTML = "Learn more at<br/><a href='http://www.ecorebox.com' target='_blank'>www.ecorebox.com</a><br/>(877) REBOX IT";
// this appends the div to the site. will be different for each client
$('.content').append(widget);
document.getElementById('erb_widget').appendChild(logo);
document.getElementById('erb_widget').appendChild(txt);
document.getElementById('erb_widget').appendChild(cs_trees);
document.getElementById('erb_widget').appendChild(cs_water);
document.getElementById('erb_widget').appendChild(cs_energy);
document.getElementById('erb_widget').appendChild(footer);
});
</script>
을 widget.js. 나는이 코드를 이해하기 위해 거기에서 보여줄 코드가 어떤 것인지 잘 모르겠다. 알려 주면 내가 풀어 낼 것이다.
응답 시간은 일반적으로 클라이언트와 관련이 없습니다. Chrome 개발자 도구 네트워킹 타임 라인을 사용하여 지연의 원인을 파악해 보셨습니까? – adamb
Chrome 개발자 도구는 정확히 21 초가 걸렸다 고합니다. 직접'json'에 가면 http://www.ecorebox.com/companies/4/snippet.json이 즉시 실행됩니다. – Dudo
이 페이지를로드하는 데 1.0x 초가 걸립니다. 문제가 어디에 있는지 알 수 없습니다. – kobaltz