2013-10-18 4 views
0

나는 조금 길다.페이지를 비동기 적으로 다시로드하거나 setTimeout?

두 페이지가 있습니다. 결과 및 세부 사항. 사용자가 브라우저 뒤로 버튼을 사용하여 세부 사항에서 결과로 이동할 때마다 결과 페이지가 새로 고쳐 져야합니다. 방금 전에 본 제품 사용자를 표시 할 수 있습니다. (아마존은 최근에 본 항목과 같은 역할을합니다)

페이지 asynchronously, 을로드하거나 볼 here로의 setTimeout 사용하는 것이 좋습니다 (작품 아래의 예,하지만 페이지가 영원히 새로 고침)

if(window.top==window) { 
    // you're not in a frame so you reload the site 
    window.setTimeout('location.reload()', 3000); //reloads after 3 seconds 
    } else { 
    //you're inside a frame, so you stop reloading 
    } 

을하고 난 그냥 사업부를 다시로드 할 때 또한

$('#div-id').triggerevent(function(){ 
    $('#div-id').html(newContent); 
    }); 
작동하지 않습니다

this으로 연결되는 많은 예제를 살펴 보았지만 제대로 작동하지 않았습니다. 제안을 환영합니다. 고맙습니다.

답변

1

사용자가 뒤로 버튼을 눌렀을 때 onload 이벤트가 발생해야합니다. JavaScript를 통해 생성되지 않은 요소는 해당 값을 유지합니다. 동적으로 생성 된 요소에 사용 된 데이터의 백업을 INPUT TYPE = "hidden"또는 TEXTAREA로 설정하여 표시하는 것이 좋습니다. none을 선택한 다음 텍스트 상자의 값을 사용하여 동적 요소를 원래대로 다시 작성합니다.

페이지를 재건 걱정하고 실제로 그것을 다시로드하지 않으려면, 당신은 할 수 :

<input type="hidden" id="refreshed" value="no"> 
<script type="text/javascript"> 
onload=function(){ 
var e=document.getElementById("refreshed"); 
if(e.value=="no")e.value="yes"; 
else{e.value="no";location.reload();} 
} 
</script> 
+0

이것은 firefox에서는 잘 작동하지만 크롬에서는 페이지가로드되고 새로 고침 할 때 전체 페이지, 어떤 아이디어? @ anand4tech – user2755801

-1

페이지를 비동기 적으로 다시로드해야한다고 생각합니다. 본체에 ready 이벤트를 첨부 할 수 있습니다.

$(function(){ 

    $('body').ready(function(){ 
     alert('worked'); 
     //Code to reload the page or data 
    }); 

    }); 
+0

'$ ('몸') 준비 (함수() { '와 동일합니다. '$ (function() {'이것은'$ {function() {' –

+0

@KevinB와 동일합니다. 오늘은 무언가를 배웠습니다 – Omar

관련 문제