分類存檔: JavaScript

HTTP 406 使用角 $HTTP.get 針對 SharePoint 休息結束點時的錯誤

更新: 馬克 AD ndersson 指出資訊這個偉大的作品: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. 這也解釋了很多 :).

這可能是最糟糕的一篇博客文章標題過! 安美居.

我通常做所有我針對 O365 實例的原型. 我有我個人的實例,所以,我不需要擔心影響別人. 順便說一句 — — 記得當我們稱之為進行虛擬機器周圍長滿了苔蘚 — — 我們筆記本電腦上 SQL Server, IIS, 決定 HYPER-V vs. VMWare? 安美居......

已經開發了一個應用程式,在這種環境不使用角, 除其他事項外, 這:

$HTTP.get(serverUrl)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.value.forEach(功能(結果) {

// 和這麼泡沫

這兩種不同 SharePoint 線上環境中工作正常. 不過, 當我的同事將其移植到一個 Cloudshare 實例時, 他正 HTTP 406 錯誤 (其中第一次我收到過那個, 所以...耶, 我想). 我們做了一些研究,發現"接受"標題關閉. SharePoint 線上感到滿意:

接受: 應用程式/json

但 cloudshare 實例 (即 SP prem, 在虛擬伺服器中承載) 想要經典"odata = 詳細"以及在中添加:

接受: 應用程式/json;odata = 詳細

要解決這個問題, 我們添加了這樣的標題:

var config = {標題: {
接受: 應用程式/json;odata = 詳細 '
}
};

$HTTP.get(serverUrl,配置)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.value.forEach(功能(結果) {

// 和這麼泡沫

那擺脫 406, 但它也改變了回應的格式. 它是更多......詳細. (哈哈!) 需要更多的變化,這裡是最後的結果:

var config = {標題: {
接受: 應用程式/json;odata = 詳細 '
}
};

$HTTP.get(serverUrl,配置)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.d.results.forEach(功能(結果) {

// 和這麼泡沫

這只變成 30 我們的小問題, 所以我們很幸運. 希望有人發現這很有用.

</結束>

角未能在 IE9 中引導

我已經一直在玩 Angular.js 為最後一次長時,我的生活, 我不能我角的應用程式,在 IE9 推出。  他們都在 IE11 中工作正常,但是 IE9 將只顯示大括弧和類似的位.

我到處尋找,找不到任何人抱怨他的問題。  它在 Chrome 中工作正常, IE11, 只是沒有 IE9.

是引發 IE 主控台給了我這樣的錯誤的事實:

SEC7111: HTTPS 安全受到水庫://ieframe.dll/forbidframing.htm

這一錯誤都迫使我思考沒有下載的角一些問題,或者我需要其他庫。  事實證明, 這並不是問題.

撬撥左右互聯網, 我終於發現搜索所需的短語是"引導",似乎像失敗的引導。  在結束, 我的問題是我裝飾過我 <html> 標記與吳應用程式屬性, 如在:

<html 吳 app ="MatrixApp">

井, 那不適合 IE9。  相反, 我裹在 HTML 中的其他一切 <正文> 裡面一個 div 和引用 MatrixApp 那種方式.

解決問題.

希望這會節省某人一些悲傷.

</結束>

意識不斷增強 / 採用各種 JavaScript 框架

我的同事, 賈韋德 · 安薩里 (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), 在他喜歡或至少一直在使用與 SharePoint 的框架寫了簡短的摘要博客帖子: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

jQuery 似乎一直在球場上的勝利者, 這麼說, 現在年, 但其他人都更多的新和劇照排序的對抗它, 像角. (SPServices, 答案是肯定的, 多年來一直是一個生活的程式並將繼續是因此,我認為).

人們在使用什麼? 他們主要集中在微軟的工具嗎 (CSOM / JSOM) 或移動更多角, 淘汰賽, 餘燼, 等?

我有這些非微軟框架越來越偏向. 我認為微軟的東西是與工作越來越難, 要求幾乎一樣的舊式伺服器端開發人員的學習曲線.

在這裡發表評論或以上 大蘋果 SharePoint 如果你想討論一下 (大蘋果將會有一個很好的討論的更多可能性).

</結束>

克服惱人的問題與 SharePoint 快速啟動中的相對 Url

我想要將連結添加到快速啟動導航那天和 SharePoint 告訴我:

image

純文字版本的是:

確保該 URL 是有效的和開頭也是有效的字元 (數位記號 (#) 或正斜杠 (/)) 或有效支援的協定 (舉個例子, HTTP://’, HTTPs://’, 檔://’, ftp://’, mailto:’, ' 新聞:’).

"Blech 和痘!"我說.

對此的解決方法是使用 JavaScript 在快速啟動中查找已知的連結和重寫其行為.

對此進行測試, 添加新連結到您的測試網站難耐:

image

我使用 jQuery. 要解決這個問題, 得到一些 JavaScript 和 jQuery 拖到頁上使用您喜歡的方法和代碼像這樣的一條線:

 

$(文檔).準備好了( 功能 () {

    $("一:包含(測試 URL 替換)").按一下(功能 () { 警報("更改的按一下行為!"); 返回 false;});

});

鮑勃的你叔叔.

JQuery 選擇器查找每個 <一> 標記在其名稱中包含"測試 URL 替換". 您可能想要查找-曲調,根據您的連結和這種.

筆者(功能() 重寫 SharePoint 將所做的一切當使用者按一下. 請確保您"返回 false",否則它會做你的東西,然後嘗試 href 東西太, 幾乎可以肯定不是你的目標.

這樣做的和在 SharePoint 的線上環境中測試,但應該很好的工作 2010 和早些時候太.

</結束>

undefined訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

可憐的人在 JavaScript 中的緩存

[TL;博士版本: 使用 cookie 來存儲非同步調用的結果; 立即呈現過去非同步調用的結果,然後在頁面載入後驗證它們。]

我一直在 SharePoint 的內聯網網站為用戶端的功能, 除其他事項外, 程式化的二級導航功能表選項都通過週期性老自訂清單管理。  想法是在用戶端獲取,不影響或受影響,由它推出的全球導航控制"他們的"網站的功能表.

(有件事令人難以置信顛覆有關添加指向一個 HTML 檔案,載入一些 CSS 和 JS,從根本上改變幾乎一切有關網站的行為......,但那是另一篇文章為 CEWP)

這個漂亮的簡單的代碼:

痛點在這裡是每次有人點擊該網站的頁面之一, 該使用者的 web 瀏覽器中伸出來獲取清單中的項。  一旦開發完成並測試已被證明是穩定和完整的東西, 此調用是不必要的多 99% 因為功能表中很少發生變化的時間。  它也有一個很奇怪的 UI 影響這是共同的在這個勇敢新世界超 ajaxy web 網站的 — — 頁上呈現,並只然後不會呈現在功能表。  它是緊張不安,我認為讓人分心。  和抖動. 所以, 緩存。 

我修改邏輯難耐:

  • 查找包含功能表中,如我上次讀取它的瀏覽器中的 cookie
    • 如果發現, 立即呈現它。  不要等待頁面完成載入。  (你需要確保你的 HTML 擺放在這裡, 但它並不難做).
  • 等待頁面完成載入,並進行非同步調用以載入了功能表項目從清單中使用休息或 lists.asmx 或不管
  • 比較我對 cookie
    • 如果它與匹配, 停止
    • 否則, 使用 jQuery 的, 如果動態填充一群 <李>中 <ul>
  • 使用 CSS 來做的所有格式
  • 利潤!

你們中的一些會說, "嘿! 沒有真正緩存會在這裡因為你反正讀功能表中 每一次.”  你說得對 — — 我不會給伺服器任何種類的斷裂。  但因為該調用是非同步和頁面的初始後會發生完全呈現 HTML 有效載荷, "感覺"更能回應使用者。  功能表中呈現漂亮一樣頁上繪製。  如果功能表中發生了變化, 使用者因此而遭受抖動重新繪製功能表, 但僅此一次.

有一些方法可以使此緩存功能更加有效和伺服器在同一時間幫忙:

  • 在"cookie 緩存"是有效的最低限度的規則中 24 小時或一些其他時限. 只要沒有過期的 cookie, 使用 cookie 的功能表快照和從來沒打伺服器.

哦那是所有現在我想說 :). 

如果任何人有任何聰明的想法在這裡我想要知道他們.

最後 — — 這種技術可以用於其他的東西。  此客戶機的頁的各種頁面都有一些資料驅動的事情, 其中許多不斷變化的相對較少 (像每週或每月一次).  如果您針對特定地區的功能, 您可以從本地 cookie 存儲拉內容並立即呈現給回應更快的使用者介面。  感覺速度更快,使用者即使不保存在伺服器任何週期。  你 可以 通過一些條件和觸發器決定廢除此 cookie 本機快取保存伺服器週期。  這就是所有情景和富有藝術氣息的東西和真正最大的樂趣 :). 

</結束>

undefined訂閱我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin