2013-09-06 2 views
1

여러 HTML 파일의 스크립팅을 처리하는 javascript 파일이 있습니다.각 HTML 파일의 JavaScript 파일은 무엇입니까?

모든 것이 방금 작성되고 함수에서 아무 것도 호출되지 않기 때문에 문제가 발생하기 시작했습니다 (예 : 모든 AJAX 호출은 모든 페이지에서 호출됩니다. 각 호출은 한 페이지에서만 호출되어야 함).

개선하거나 수정하는 가장 좋은 방법은 무엇입니까?

  1. 내가 기대어하고 각 기능에 각각

을 기능에 모든 JS 코드를 넣어 각각의 HTML 파일

  • 에 대한 별도의 JS 파일을 만들고 전화 : 여기에 내가 그 일을 생각 두 가지 방법이 있습니다 내 모든 코드를 기능에 넣기. 그러나, 내가했을 때 :

    <script src="the_source"> 
        call_function 
    </script> 
    

    그것은 작동하지 않았다. 나는 책임있는 HTML이 있던 곳에서 바로 앞에 놓았다. 나는 원래 Haml에서 다음과 같이 썼습니다.

    %script{:src => "src"} 
        call_function 
    

    어떻게이 HTML 함수 호출이 작동합니까?

    또는 각 HTML 파일이 더 나은 해결책으로 간주되는 다른 JS 파일을 가지고 있다는 점을 구분하고 있습니까? 문제는 그들 사이에 많은 공유 코드가 있다는 것입니다. 이를 해결하기 위해 필요에 따라 다른 JS 파일에서 호출 할 수있는 객체에 공유 코드를 사용하여 다른 파일을 만들 수 있습니다.

    이 문제에 대한 더 깔끔한 접근 방법/해결책은 무엇입니까?

  • 답변

    0

    JS 코드를 각 페이지 당 하나씩 몇 개의 다른 파일에 넣습니다. 브라우저가 필요한 기능을 찾기 위해 엄청난 양의 코드를 거치지 않아 사이트를 더 빨리 실행할 수 있습니다. (또한 이것은 개인적인 견해 일뿐입니다) 짧은 함수 목록이 많은 JS 파일은보기가 좋지 않으며 효율성이 떨어집니다.

    그리고 예, 공유 코드가있는 추가 파일을 포함하십시오. 파일에서 불필요하게 반복되는 내용이 없는지 확인하십시오! 행운을 빈다!

    call_function(); 
    

    편집 : "the_source"입니다

    <script src="the_source"></script> 
    <script > 
        call_function(); 
    </script> 
    

    이 JS 경로가

    최종 편집

    을 분리하기 위해 파일 :

    +0

    이렇게하면 공유 파일을 다른 JS 파일에 포함시킬 수 있습니까? 다른 파일을 추가하기 전에 HTML '링크 한 다음 ** ** 관련 JS 파일을 각 페이지에 저장하십시오. :) –

    1

    기능 사용을 호출하려면 논리 모든 페이지에 내가 그냥 몇 가지 설정 개체를 생성하고 카지노에 플래그를 넣어 것 당신이 분리 되길 원한다면 :

    //this code should be on every page you need your javascript file 
    <script src="the_source"></script> 
    <script> 
        var settings = { 
         mode:'doSomething1' 
        } 
        call_function(settings); 
    </script> 
    

    귀하의 js 파일에 설정에 따라 일을하십시오.모드 값 :이 전용 또는 반 전용 서버 인 경우

    :

    function call_function(settings) 
    { 
        switch(settings.mode){ 
         case: 'doSomething1': 
          //code for case1 
          break; 
         case: 'doSomething2': 
          //code for case2 
          break; 
         default: 
          //code for default case 
          break; 
        } 
    } 
    
    +0

    그건 작동하지 않았다. 이 스크립트 태그는 어디에 넣어야합니까? 호출을 원하거나 파일의 끝에서 원하는 부분은 어디입니까? – darksky

    +0

    나는 나의 대답을 편집했다. 닫기 전에 파일 끝에 스크립트 태그를 넣으십시오. 태그 –

    1

    이 호스팅 계획에 따라

    내가 (성능) 공유 자바 스크립트 파일이하는 것을 선호합니다.

    다른 종류 인 경우 seperate 파일은 다른 JS 파일의 요청로드를 분산하므로 더 빠릅니다. Somwhere에서

    <script src="somewhere"> 
    var page = "<?PHP echo basename($_SERVER['PHP_SELF']); ?>"; 
    Run_Function(); 
    </script> 
    

    :

    function Run_function(){ 
    switch(page){ 
    case "1.php": 
    //Do Something 
    break; 
    case "2.php": 
    //Do Something else 
    break; 
    default: 
    alert("Unregistered webpage"); 
    break; 
    } 
    

    행운을 빕니다 : D
    EDIT 당신이 지저분한 것 같은 seoerated 파일을 생성하지 않으려면

    내가 다음을 수행하는 것이 좋습니다 파일 이름 :

    function FileName(){ 
    var url = window.location.pathname; 
    var filename = url.substring(url.lastIndexOf('/')+1); 
    return filename: 
    } 
    

    는 UPDATE :이 기능은 사용하는 것이 더 유연 더 많은 사람들 + 도움이 될

    function FileName(){ 
    var url = window.location.pathname; 
    var filename = url.substring(url.lastIndexOf('/')+1); 
    if(filename == "" || filename == "Undefined"){ 
    filename = "index.ruby";//or any other extension 
    }else{ 
    var filename = filename.replace(/%C3%84/g, "Ä"); 
    var filename = filename2.replace(/%C3%96/g, "Ö"); 
    var filename = filename2.replace(/%C3%9C/g, "Ü"); 
    var filename = filename2.replace(/%C3%A4/g, "ä"); 
    var filename = filename2.replace(/%C3%B6/g, "ö"); 
    var filename = filename2.replace(/%C3%BC/g, "ü");  
    } 
    return filename: 
    } 
    

    :
    위의 개선 된 기능을 확인하시기 바랍니다.

    +0

    VPC 내의 EC2 인스턴스에서 실행 중입니다. Rails 백엔드와 대화하는 jQuery/HTML 앱입니다. 공유 파일 인 경우 해당 파일에서 특정 기능을 호출하려면 어떻게해야합니까? 스 니펫의 경우이 'var 페이지'는 무엇을하고 있습니까? PHP를 사용하지 않고 서버에 함께 설치하는 것을 삼가 해주십시오. :) – darksky

    +0

    @Darksky 나는 그것이 도움이되기를 바란다. –

    관련 문제