Tag Archives: 자바 스크립트

신속 하 고 쉽게: 나머지를 사용 하 여 SharePoint 사이트를 만들

이 작업을 수행 하는 방법을 보여 주위 자원의 많은 있다, 하지만 포괄적인 이동 하려면 링크를 찾을 수 없습니다., 그래서 여기에 우리가 있습니다..

나머지 API를 사용 하 여 SharePoint 사이트를 만들 수 있습니다.  여기에 완벽 하 게 구운된 예제가입니다.:

<!--
    SiteRequestForm.html: 정보를 수집 하 고 사용자에 대 한 사이트를 만들.
-->

<센터>
<테이블>
    <tr>
        <td>사이트 이름:</td>
        <td><입력 유형= "텍스트" 이름"사이트 이름 =" id"사이트 이름 =" /></td>
    </tr>
    <tr>
        <td colspan= "2">
            <입력 유형= "제출" id"CreateSiteButton =" "만들기 사이트 =" />
        </td>
    </tr>
</테이블>
</센터>

<스크립트 src="../Plugins/jquery-1.11.0.min.js"></스크립트>

<스크립트>
var CreateSiteLogicContainer = {

    createSiteData: {
            "매개 변수": {
                __metadata: { "유형": "특검팀WebInfoCreationInformation" },
                Url: "Paultest1",
                제목: "Paultest1",
                설명: "나머지 만든 웹 폴!",
                언어: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 함수 () {

        jQuery.support.cors = true;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").발();
        
        $.아 약 스({
            url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            메서드: "게시물",

            헤더: {
                "동의": "응용 프로그램/json; odata 자세한 정보 표시 =",
                "콘텐츠 유형": "응용 프로그램/json;odata 자세한 정보 표시 =",
                "X-RequestDigest": $("# __REQUESTDIGEST").발()
            },

            데이터: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            성공: 함수 () { 경고("성공"); },
            오류: 함수 () { 경고("오류"); }

        });
    },

    wireUpForm: 함수 () {
        $("#CreateSiteButton").클릭 하십시오.(함수 () {
            경고("에 대 한 시도 하 고 만들 사이트.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</스크립트>

성공 하면, 이 같은 응답에서 JSON 패킷을 얻을:

image

내 주요 생각과이 포함에서 learnings:

  • 이 방법은 사용 하는 jQuery.  내 경우에는, jQuery 라이브러리 내에 있는 ".../ 플러그인. "  당신의 마음에 드는 JQ 위치를 가리키도록 변경 하 고 싶을 것 이다.
  • 복사 하 고 페이지에 콘텐츠 편집기 웹 파트에 붙여 그 전체 조각 수와 잘 작동 합니다.  API 호출의 변화와 JQ를 올바르게 참조 하는 것을 확인 해야.
  • URL은 API의 끝점에 상대적입니다.  내 경우에는, 그것은 밑에 하위 사이트를 만드는 https://bigapplesharepoint.com
  • 콘텐츠 길이 제공 하기 위해 필요 하지 않습니다.. 일부 블로그 게시물 및 MSDN 문서 의미 당신이 할, 하지만 나를 위해 일 하는 자동으로, 나는 $.ajax 통화 자체에 의해 처리 되 고.
  • 이 라인 "금지한" 응답을 방지 하는 데 필요한: "X-RequestDigest": $("# __REQUESTDIGEST").발().  다른 방법이 그것을 할 수 있다, 하지만 이것은 매우 좋다.  이 바로 가기이 키를 제공 하는 블로그에 링크를 분실 했습니다.  H/T 당신에 게, 신비한 블로거!

행운을 빌어요 그리고이 밖으로 사람을 도움이 되기를 바랍니다..

</끝>

undefined내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

신속 하 고 간단: SharePoint 나머지 전화만 반환 100 레코드

여기에서 내 SharePoint 연습에 대 한 공공 직면 하 고 웹 사이트에서 작업 했습니다. 뉴욕 자바 스크립트와 나머지 호출을 많이 사용 하 여 콘텐츠 표시.

Mainline 개발 중, 그냥 함께 작은 데이터 집합을 만들려면 10 또는 그렇게 행에 사용자 지정 목록이 나 나머지 통화 모든 거기에서 가져온.  일단 내가 승진 예상된 성장에 대 한 테스트 데이터의 몇 백 행 목록, 정확 하 게 참이 었 어 발견 100 내 나머지 전화에 다시 반환 하는 행.

이것은 매우 간단한 일이 주소로입니다.  내 경우에는 (대부분의 경우에 믿고), 기본 SharePoint 나머지 호출 (업계 표준으로 가능 하 게 하 고?) 반환 100 행입니다.  기본 보다는 더 많은 수익을, $top 매개 변수를 사용 하 여 귀하의 전화에, 마찬가지로:

/Insights Dev/_api/web/lists/GetByTitle를 얻을(' MockBlog')/항목?$선택 = ID,제목,카테고리/제목,Blog_x0020_Author/제목,DatePublished,BlogSummary&$확장 Blog_x0020_Author =,카테고리&$필터 =&$위쪽 = 9999

내가 골 랐 어 요 9999 이 경우 이후 내가 아는 growth-wise, 되지 않습니다 이상 200 또는 그렇게 행 1 년에이 목록에 추가 합니다.  꼴 사나운 되는 경우, 도 아래로 몇 가지 페이징 구현할 수 있습니다..

</끝>

undefined내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin

불 쌍 한 남자의 자바 스크립트 캐싱

[TL;박사 버전: 쿠키를 사용 하 여 비동기 호출의 결과 저장; 즉시 과거 비동기 호출의 결과 렌더링 하 고 페이지 로드 후 확인.]

내가 일하고 SharePoint 인트라넷 사이트에 있는 클라이언트에 대 한 기능, 다른 것 들 중, 양식에 일치 시키는 보조 탐색 해당 메뉴 옵션이 일반 오래 된 사용자 지정 목록을 통해 관리 됩니다.  아이디어는 클라이언트에 영향을 미치는 또는 그것에 의해 밖으로 넣어 전역 탐색에 의해 영향을 받지 않고 "그들 의" 사이트의 메뉴 제어를 가져옵니다..

(뭔가 엄청나게을 로드 일부 CSS와 JS... 사이트의 동작에 대 한 거의 모든 것을 근본적으로 변경 하지만 그건 다른 게시물에 대 한 HTML 파일을 가리키는 CEWP 추가 대 한 파괴)

이 아주 간단한 코드:

아픈 자리 여기는 누구 든 지 사이트의 페이지 중 하나를 조회 수 모든 시간, 해당 사용자의 웹 브라우저 목록에서 항목을 가져올 밖으로 도달 합니다.  개발 완료 되 고 테스트 되 면 안정적이 고 완전 한 것을 입증 했다, 이 호출이 필요 하지 않습니다 더 이상 99% 거의 메뉴부터 시간 변경합니다.  그것도 이상한 UI에 영향을 미칠 하이퍼 ajaxy 웹 사이트의이 용감한 새로운 세계에 있는 일반적인-페이지 렌더링 하 고 그런 다음 메뉴 렌더링지 않습니다.  그것은 과민 하 고 내 보기에 산만 한입니다.  그리고 신경 과민. 그래서, 캐싱. 

Thusly 논리를 수정:

  • 마지막 그것을 읽고 메뉴를 포함 하는 브라우저에서 쿠키에 대 한 보고
    • 만약 발견, 즉시 렌더링 합니다.  페이지 로딩 완료를 기다리지 않는다.  (당신의 HTML 여기 전략적으로 배치 되도록 해야, 그것은 일을 열심히 하지만).
  • 로딩을 끝내 고 나머지 또는 lists.asmx 또는 무엇이 든을 사용 하 여 목록에서 메뉴 항목을 로드 하려면 호출 하는 비동기 페이지에 대 한 대기
  • 내가 쿠키에 대 한 비교
    • 일치 하는 경우, 중지
    • 그렇지 않으면, jQuery를 사용 하 여, 경우 동적으로 무리를 채울 <리>에 <ul>
  • CSS를 사용 하 여 모든 서식 할 수
  • 이익!

당신의 일부는 말 거 야, "이 봐! 아니 진짜 캐싱가 여기에 있기 때문에 어쨌든 메뉴를 읽고 있다 매 시간.”  그리고 당신 말이 맞아-하지 휴식의 어떤 서버를 주는 거 야.  하지만 HTML 페이로드 완전히 렌더링 호출은 비동기 이며 이후 페이지의 초기 발생 하기 때문에, 그것은 "느낌"는 사용자에 게 응답성.  메뉴는 페이지 그리는 만큼 꽤 렌더링 합니다.  메뉴 변화를 발생 하는 경우, 사용자 메뉴의 과민 다시 그릴을 복종 된다, 하지만 그 한 번만.

이 캐싱 보다 효과적으로 만들기 하는 동시에 서버 도와 몇 가지:

  • "쿠키 캐시"는 최소 유효 규칙에 24 시간 또는 다른 시간대. 만큼 만료 된 쿠키가, 쿠키의 메뉴 스냅숏을 사용 하 고 결코 서버.

그 게 지금 당장 마음에와 서 다 음... :). 

누구 든 지 여기 어떤 영리한 아이디어를 가진다면 그들을 알고 싶어요.

그리고 마지막으로-이 기술은 다른 것 들에 대 한 사용할 수 있습니다.  이 클라이언트의이 페이지는 다양 한 페이지에 다양 한 데이터 기반 것 들, 그들 중 많은 사람들이 상대적으로 거의 변화 (일주일에 한 번 또는 한 달에 한 번).  기능의 특정 영역을 대상 하는 경우, 로컬 쿠키 저장소에서 콘텐츠를 당기 및 즉시 렌더링 응답성 UI를 제공할 수 있습니다.  그것은 어떤 주기 서버 저장 하지 하는 경우에 사용자에 게 더 빨리 느낀다.  당신은 수 있습니다. 이 로컬 쿠키 캐시를 무효화할 일부 조건과 트리거에 결정 하 여 서버 사이클을 저장 합니다.  그건 모든 상황이 복잡 한 물건 및 진짜로 가장 재미 있는 :). 

</끝>

undefined내 블로그를 구독.

에 지 저 귐에 나를 따르라합니다 http://www.twitter.com/pagalvin