programing

jQuery에 전역 값(반드시 전역 변수가 아님)을 저장하는 방법?

topblog 2023. 10. 20. 13:22
반응형

jQuery에 전역 값(반드시 전역 변수가 아님)을 저장하는 방법?

현재 저는 수많은 자바스크립트, jQuery, 마이크로소프트 클라이언트 자바스크립트 및 기타 라이브러리를 사용하는 레거시 웹 페이지를 작업하고 있습니다.결론 - 기업이 정당화할 수 없기 때문에 페이지 전체를 처음부터 다시 쓸 수는 없습니다.그래서.. 그게 그거에요.어쨌든, 저는 변수로 글로벌 네임스페이스를 오염시킬 필요가 있습니다(저도 정말 시도하지 않았습니다).제가 생각하고 있던 세가지 선택지가 있습니다.

  1. 그냥 일반 자바스크립트 선언으로 저장/검색하면 됩니다.var x = 0;

  2. jQuery를 사용하여 DOM 태그에 값을 저장/검색합니다.$("body").data("x", 0);

  3. 숨김 양식 필드를 사용하고, jQuery로 값을 설정/검색합니다 -$("whatever").data("x", 0);

더 좋은 방법이 있습니까?기존 코드 더미를 살펴보았는데 함수에서 변수 범위를 지정할 수 있다고 생각하지 않습니다.

다음과 같이 jQuery 개체 내부에 네임스페이스를 만들 수 있습니다.

$.mynamespace = { 
    myVar : "something", 
    myVar2 : "somethingElse" 
}; 

또는:

$.mynamespace = {};
$.mynamespace.myVar = "something";
$.mynamespace.myVar2 = "somethingElse";

'mynamespace'라는 이름의 플러그인 메서드는 덮어쓰게 되므로 반드시 적절한 이름을 사용해야 합니다.

이 상황을 처리하는 가장 좋은 방법은 창 개체에 개체를 정의하는 것입니다.

window.my_config =
{
    my_var1 : 1,
    my_var1 : 2,
    my_var1 : 3
};

이렇게 하면 스코프가 깔끔하고 깨끗하게 유지됩니다.그리고 언제든지 전세계적으로 접속할 수 있습니다.window.my_config코드를 보는 사람이라면 누구나 글로벌이 접속되고 있다는 것을 알 것입니다.

전역 범위에서 해시를 생성하여 네임스페이스로 사용할 수 있습니다.

MyNamepace={}
MyNamespace.newvar = 'value'
// MyNamespace.newvar => 'value'

연습 내용만 공유하면 필요한 자바스크립트 파일에 적절한 접두사를 사용하여 전역 개체/var를 만들 수 있습니다. 마치 이 개체가 텍스트 상자가 될 페이지에서 작업하는 것처럼 이름을 지정합니다.

g_TxtMyValue = 'value';    // g_ specifies it to be a global variable, it is one
                           // of the many conventions used

두 개 이상의 전역 변수가 있는 경우 다음과 같은 네임스페이스를 사용할 수도 있습니다.

my_txt = {};  // For a real site I would use a prefix relative to the project
              // name instead of "my".

my_txt.testValueOne = 'Value one';
my_txt.testValueOne = 'Value two';

이러한 변수는 초기화된 후 웹 사이트를 통해 사용할 수 있습니다.

도움이 되었으면 좋겠습니다.

밑줄을 사용합니다.

_.isEmpty('')돌아올 것입니다true.

짧은 공지 사항입니다.

팬시박스는 AJAX(iFrame 내에서 로드되는 경우 근접 메소드에 "parent"를 추가해야 함)를 수행하고 있습니까?

parent.$.fancybox.close();

언급URL : https://stackoverflow.com/questions/2866866/how-to-store-a-global-value-not-necessarily-a-global-variable-in-jquery

반응형