Özellik ''Köprü | Değer'' <value>

Top  Previous  Next

Hedeflenen yere köprü kurmak için; "Köprü | Değer" özelliği kullanılır. Hedef bir sayfa veya sunucu üzerinde bir komut olabilir.

Eğer hedef; proje içindeki bir sayfa ise, sadece sayfanın adını vermek yeterlidir. Dosya uzantısı verilmez. Örneğin "Page1". Proje dışındaki bir hedefe köprü kurmak için, tüm URL verilmelidir. Örnek: "http://www.digersite.com.tr/PageX.html".

Bu özelliğe girilen değer, aşağıdaki durumlarda proje içindeki bir sayfa adı olarak kabul edilmez:

Sayfanın MoreMotion Kullanımda özelliği "false" ise
Değer, "/", "?" veya "." karakterlerini içeriyorsa
Değer, "$vof()" veya "$xsl()" fonksiyonlarını içeriyorsa
Değer, baş tarafında  "javascript:" özel kelimesini içeriyorsa
 

Köprü değerini göreceli vermek

Proje içindeki sayfalara köprüler kurarken, tanımlar göreceli olabilir.

Uyarı: Alt seviyedeki sayfalara köprü verirken "/" karakterini değil "\" karakterini kullanın.

relative_linking

"index" sayfasından diğerlerine köprüler:

- "aboutus"

- "products"

- "products\notebooks"

- "products\printers\laser"

 

"printers" sayfasından diğerlerine köprüler:

- "notebooks"

- "printers\inkjet"

- "..\aboutus"

- "\index"

- "\products\printers\laser"

 

"laser" sayfasından diğerlerine köprüler:

- "inkjet"

- "..\printers"

- "..\..\products"

- "\products"

Sayfaları Göstermek

Diğer bir sayfaya köprü tanımı yaparken, sadece sayfanın adını vermek yeterlidir. Örneğin "Page1". Derleme sırasında bu "display.doms?pg=Page1" ifadesine dönüşecektir. Bakın Sayfa Gösterim Servisi

Ancak Sayfa Gösterim Servisine bazan sayfanın adı dışında da istek parametreleri göndermek gerekir. Bu durumda sadece sayfanın adını yazmak yerine; aşağıdaki gibi bir tanım kullanılabilir.

display.doms?pg=Page1&parm1=birdeger&parm2=baskabirdeger

 

pg parametresinin kullanımı

Bir sayfaya verilen köprü değeri eğer $vof() fonksiyonu kullanılarak dinamik olarak belirleniyorsa, bu tanım, doğal olarak, designer tarafından bir sayfa adı olarak algılanamaz.

Örneğin; aşağıdaki tanım geçersizdir.

display.doms?pg=$vof(KullaniciTipi = 'yonetici' ? 'YoneticiSayfasi' ; 'KullaniciSayfasi')

 

Çünkü bu haliyle, "YoneticiSayfasi" ve "KullaniciSayfasi" sayfa adı olarak algılanamaz. Ancak, designer "pg=" ifadesini tanır. Bu sayede, koşullu köprü tanımını aşağıdaki gibi yaparak; designer'ın köprü içinde kullanılan sayfa adlarını ayırt edebilmesini ve derleme sırasında bu sayfalar olmadığı durumda da, kırık köprü olarak rapor edebilmesini sağlayabilirsiniz.

display.doms?$vof(KullaniciTipi = 'yonetici' ? 'pg=YoneticiSayfasi' ; 'pg=KullaniciSayfasi')

 

Tarayıcıların tazeleme sorunu nasıl çözülür?

Ayarlarına ve HTML sayfalarının başlık bilgilerine bağlı olarak tarayıcılar, performansı arttırmak amacıyla gösterdiği sayfaları ön belleğine alır. Böylece, kullanıcı daha önce gösterilmiş olan bir sayfayı (URL'i) tekrar görmek isterse; tarayıcı sunucuya yeni bir istek yapmak yerine, ön belleğine aldığı HTML sayfasını gösterir.

Tarayıcıların bu davranışı, aşağıdaki durumda olduğu gibi, her zaman uygun olmayabilir.

display.doms?pg=Urunler
 

İlk defasında tarayıcı bu URL'e bir istek yapacak ve sunucu tarafından üretilmiş olan sayfa ön belleğe alınacaktır. Eğer daha sonra aynı URL kullanılarak ürün listesinin son hali edinmek istense de, tarayıcı isteği sunucuya göndermeden, ön belleğindeki kopyasını göstereceği için bu mümkün olmayacaktır.

Bu problemin üstesinden _rand parametresi kullanarak gelebiliriz

display.doms?pg=Urunler&_rand=

 
_rand, istek parametrelerinin en sonunda kullanılan özel bir parametredir. Bir köprü değeri içinde yukarıdaki gibi boş değere sahip bir _rand parametresi kullanılırsa, MoreMotion Application Studio derleme sırasında RefreshHref adlı bir javascript fonksiyonunu devreye alır. Bu kodlar, köprü üzerine her tıklandığında harekete geçer ve _rand parametresine benzersiz bir değer atar. Bu sayede oluşan yeni URL daha öncekilerden farklı olduğu için tarayıcı, isteği yenilemek zorunda kalır.

Bir diğer alternatif ise; sayfanın "Tarayıcı ön belleğine almasın" özelliğini kullanmaktır. Bu özelliğe "true" değeri vererek, MoreMotion AF sayfa gösterim servisine sayfa yanıt başlığına (Response Header) gerekli tanımların eklemesini ve bu sayede tarayıcıların gönderilen yanıtı disk belleğine almamalarını sağlayabilirsiniz.

Bakın Köprü