Arkib Kategori: JavaScript

HTTP 406 Ralat apabila menggunakan sudut $http.get berbanding SharePoint rehat hujung Mata

Mengemas kini: MARC AD ndersson menunjukkan ini sebahagian besar maklumat: http://Blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-Released/. Sebab itulah banyak :).

Ia mungkin tajuk posting blog paling teruk pernah! Anyhoo.

Saya biasanya lakukan semua prototaip saya terhadap contoh O365. Saya mempunyai contoh diri saya supaya saya tidak perlu bimbang tentang mempengaruhi orang lain. Seperti yang diperuntukkan untuk – ingat apabila kita memanggil dibawa sekitar Mesin maya pada komputer riba kami dengan Lumut – SQL Server, IIS, penentu vs Hyper-V. VMWare? Anyhoo...

Saya telah membangunkan sebuah aplikasi yang menggunakan sudut dalam persekitaran yang tidak, antara lain, ini:

$http.get(serverUrl)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Ini adalah bekerja saja dalam dua berbeza SharePoint dalam talian persekitaran. Walau bagaimanapun, Bilakah rakan sekerja saya dipindahkan ia ke contoh Cloudshare, dia sering terlibat dengan HTTP 406 kesilapan (yang adalah kali pertama saya pernah mendapat satu itu, Jadi... yay, saya rasa). Kami melakukan sedikit kajian dan menyedari bahawa pengepala "Menerima" adalah dari. SharePoint dalam talian adalah sempurna gembira dengan:

Menerima: Permohonan/json

Tetapi contoh cloudshare (yang dihidupkan SP prem, dihoskan dalam pelayan maya) mahukan klasik yang "odata = banyak cakap" ditambah dalam serta:

Menerima: Permohonan/json;odata = banyak cakap

Untuk menetapkan bahawa, kami menambah pengepala Justeru:

tatarajah VAR = {header: {
'Menerima': ' permohonan/json;odata = banyak cakap '
}
};

$http.get(serverUrl,config)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.value.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Yang dapat menghilangkan dalam 406, tetapi ia juga mengubah format maklum balas. Itu lebih banyak... banyak cakap. (Haha!) Lebih banyak perubahan yang diperlukan dan inilah keputusan akhir:

tatarajah VAR = {header: {
'Menerima': ' permohonan/json;odata = banyak cakap '
}
};

$http.get(serverUrl,config)
.kejayaan(fungsi(data, status, header, config) {

VAR getLinksResponse = data;

getLinksResponse.d.results.forEach(fungsi(theResult) {

// dan sebagainya dan jadi buih

Ini hanya bertukar menjadi sebuah 30 minit masalah untuk kita, Jadi kita lucked Keluar. Mudah-mudahan orang mendapati ini berguna.

</akhir>

Sudut gagal Bootstrap di IE9

Saya telah telah bermain dengan Angular.js yang terakhir yang lama semasa dan untuk kehidupan saya, Saya tidak boleh mendapatkan aplikasi sudut saya untuk memulakan tahun IE9.  Mereka semua bekerja denda di IE11 tetapi IE9 akan hanya menunjukkan pendakap kerinting dan bit sama.

Saya mencari sekeliling dan tidak dapat mencari sesiapa mengadu tentang masalah beliau.  Ia bekerja dengan baik dalam Chrome, IE11, tak IE9.

Saya telah dibuang dari oleh fakta bahawa konsol IE yang memberi saya kesalahan seperti ini:

SEC7111: Keselamatan HTTPS boleh terjejas oleh res://ieframe.dll/forbidframing.htm

Kesalahan itu telah membuat saya berfikir ada adalah beberapa masalah yang dimuat-turun di sudut atau Perpustakaan lain yang saya perlukan.  Ternyata, ini bukan isu.

Oleh poking sekitar internet dalam, Saya akhirnya mendapati bahawa frasa yang saya perlukan untuk mencari "bootstrap" dan ia kelihatan seperti bootstrapping yang gagal.  Pada akhir, masalah saya adalah bahawa saya telah dihiasi saya <html> tag dengan atribut ng-aplikasi, seperti dalam:

<HTML ng-aplikasi = "MatrixApp">

Well, yang tidak bekerja untuk IE9.  Sebaliknya, Saya dibungkus semua ahli HTML di dalam <badan> di dalam bah yang dan rujukan MatrixApp dengan cara.

Masalah yang diselesaikan.

Mudah-mudahan ini menyelamatkan seseorang sedikit kesedihan.

</akhir>

Kesedaran yang semakin meningkat / Menerima pakai JavaScript Rangka Kerja

Rakan saya, Javed Ansari (http://www.bigapplesharepoint.com/team?showExpertName=Javed%20Ansari&rsource=pgblog), menulis posting blog ringkasan pendek rangka kerja dia suka atau sekurang-kurangnya telah menggunakan dengan dengan SharePoint: http://www.bigapplesharepoint.com/pages/View-An-Insight.aspx?BlogID=53&rsource=PGBlog).

jQuery seolah-olah telah menjadi pemenang atas Padang, boleh dikatakan, selama kini, tetapi yang lain yang lebih baru dan imej pegun semacam bertarung ia, seperti sudut. (SPServices, sudah tentu, telah menjadi tali hayat selama bertahun-tahun dan akan terus menjadi jadi saya fikir).

Apa orang menggunakan? Mereka memberi tumpuan lebih rencam Microsoft (CSOM / JSOM) atau bergerak lebih ke arah sudut, Kalah mati, Ember, dan sebagainya.?

Saya mempunyai kecenderungan semakin meningkat ke arah rangka kerja ini bukan Microsoft. Saya fikir hal-hal MSFT adalah sukar untuk bekerja dengan, memerlukan hampir sebanyak mungkin keluk pembelajaran sebagai gaya-lama-pelayan dev.

Pos komen di sini atau lebih pada SharePoint epal besar Jika anda ingin berbincang mengenai (Big Apple akan mempunyai lebih banyak kemungkinan perbincangan yang baik).

</akhir>

Mengatasi Masalah Annoying dengan Url relatif dalam SharePoint Pelancaran Pantas

Saya ingin menambah link ke pelancaran quick navigasi haritu dan SharePoint memberitahu saya:

image

Versi teks murni itu:

Memastikan bahawa URL adalah sah dan bermula dengan sama ada bersifat sah (tanda nombor (#) atau garis condong hadapan (/)) atau sah disokong protokol (contohnya, ' http://', ' https://', ' fail://', ' ftp://', ' mailto:', ' berita:').

"Blech dan pox!"Saya berkata.

Workaround ini adalah dengan menggunakan JavaScript untuk mencari pautan dikenali pelancaran quick dan menulis ganti kelakuan yang.

Untuk ujian ini, Tambah pautan baru ke laman web anda ujian Ehwal:

image

Saya menggunakan jQuery. Untuk menyelesaikannya, mendapatkan beberapa JavaScript dan jQuery ke halaman menggunakan teknik kegemaran anda dan dengan baris kod seperti ini:

 

$(dokumen).bersedia( fungsi () {

    $("1:mengandungi('Ujian penggantian URL')").klik(fungsi () { berjaga-jaga("tingkah laku berubah klik!"); kembali palsu;});

});

Dan Bob bapa saudara anda.

PEMILIH jQuery mendapati setiap <1> tag yang mempunyai "URL ujian penggantian" pada namanya. Anda mungkin mahu mencari-tune yang bergantung kepada anda link dan apa-apa.

.Click dalam(fungsi() menindih apa SharePoint akan peroleh apabila pengguna klik. Pastikan anda "kembali palsu" atau kalau ia akan melakukan hal anda dan kemudian cuba untuk perkara href yang terlalu, yang sudah hampir pasti bukan matlamat anda.

Ini telah dilakukan dan ujian dalam persekitaran SharePoint dalam talian tetapi sekiranya kerja baik di 2010 dan lebih awal terlalu.

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Caching Man Poor dalam JavaScript

[TL;DR versi: menggunakan cookies untuk menyimpan keputusan panggilan async; menyebabkan keputusan lepas async panggilan dengan serta-merta dan kemudian mengesahkan mereka selepas Laman-load.]

Saya telah bekerja pada tapak SharePoint intranet untuk pelanggan yang mempunyai, antara lain, pelayaran sekunder stylized opsyen menu yang diuruskan melalui senarai tersuai lama tetap.  Ideanya adalah bahawa pelanggan mendapat untuk mengawal menu Laman "mereka" tanpa mempengaruhi atau dipengaruhi oleh navigation global yang menghulurkan olehnya.

(ada sesuatu yang sangat subversif tentang menambah CEWP yang menghala ke fail HTML yang memuatkan beberapa CSS dan JS pada asasnya mengubah hampir segala-galanya mengenai kelakuan tapak... tapi itu untuk jawatan lain)

Kod ini sederhana cantik:

Di sini tempat yang sakit adalah bahawa setiap kali sesiapa terkena salah satu muka surat Laman web ini, pelayar web pengguna itu mendekati untuk mendapatkan item dari senarai.  Sebaik sahaja dev adalah lengkap dan ujian telah terbukti semuanya menjadi stabil dan lengkap, panggilan ini adalah tidak perlu lebih daripada 99% masa kerana menu yang jarang berubah.  Ia juga telah mempengaruhi UI pelik yang biasa dalam dunia baru berani ini laman web hyper-ajaxy – membuat halaman dan barulah tidak menu menyebabkan.  Ia adalah jittery dan mengganggu dalam pandangan saya.  Dan jittery. Jadi, cache. 

Saya kali logik Ehwal:

  • Mencari kuki dalam penyemak imbas yang mengandungi menu seperti aku terakhir membaca ia
    • Jika didapati, menyebabkan ia dengan serta-merta.  Jangan tunggu untuk laman untuk memuatkan selesai.  (Anda perlu pastikan anda HTML strategik diletakkan di sini, tetapi ia tidak sukar untuk dilakukan).
  • Tunggu sehingga halaman selesai loading dan membuat async untuk hubungi untuk memuatkan semua item menu daripada senarai menggunakan rehat atau lists.asmx atau apa-apa
  • Bandingkan apa yang saya dapat menentang cookie
    • Jika ia sepadan, BERHENTI
    • Jika tidak, menggunakan jQuery, dinamik penduduk sekumpulan jika <li>di dalam sebuah <st>
  • Menggunakan CSS untuk melakukan semua format
  • Keuntungan!

Ada di antara kamu akan berkata, "Hei! Terdapat tiada nyata caching berlaku di sini kerana anda sedang membaca menu juga setiap kali."  Dan kau betul-betul-aku tidak memberikan pelayan mana-mana jenis cuti.  Tetapi kerana panggilan async dan berlaku selepas halaman yang awal HTML muatan penuh membuat, "rasanya" lebih responsif kepada pengguna.  Menu membuat agak banyak yang menarik di laman.  Jika menu yang berlaku kepada perubahan, pengguna adalah tertakluk kepada yang jittery semula menarik Menu, tetapi hanya itu satu-satu masa.

Terdapat beberapa cara untuk membuat cache ini lebih berkesan dan membantu pelayan pada masa yang sama:

  • Dimasukkan ke dalam peraturan bahawa "cookie cache" adalah sah untuk sekurang-kurangnya 24 jam atau beberapa tempoh lain. Selagi terdapat tidak ada cookie yang tamat tempoh, menggunakan cookie's menu petikan dan Jangan sekali-kali memukul pelayan.

Well... itu semua yang datang ke fikiran sekarang :). 

Jika sesiapa yang mempunyai sebarang idea yang bijak di sini saya ingin tahu mereka.

Dan akhir sekali – teknik ini boleh digunakan untuk hal-hal lain.  Laman pelanggan ini mempunyai beberapa perkara dipacu data pelbagai halaman, ramai di antara mereka menukar agak jarang (seperti seminggu sekali atau sebulan sekali).  Jika anda menyasarkan bidang-bidang tertentu fungsi, anda boleh memberi UI yang lebih responsif dengan menarik kandungan dari kedai kuih tempatan dan memberi serta-merta.  Rasanya lebih cepat kepada pengguna walaupun anda bukan sedang menyelamatkan pelayan kitaran mana-mana.  Anda boleh Simpan kitaran pelayan dengan memutuskan mengenai beberapa syarat dan pencetus untuk mentaksahkan cache tempatan kuih ini.  Itulah semua situasional dan barangan artsy dan benar-benar yang paling menyeronokkan :). 

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin