Konuyu Paylaş : facebook gplus twitter

Konuyu Oyla:
  • Derecelendirme: 5/5 - 1 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Mobil App vs Web Browserde Gösterim
#1
Merhaba Arkadaşlar;

İçeriğinde resimler olan bir işlem yapıldıkça açıklamalarla birlikte ürün resimlerinin de gösterildiği bir proje üzerinde uğraşıyorum, (Aşağıdaki resimdeki gibi bir çıktı oluyor);

Delphi Mobil proje yazsam; Resimleri her defasında mobil projeye database'den çekip yazmak çok büyük zaman ve performans kaybına neden oluyor.
Aynı işlemi Unigui mobil tarafında yazsam arada gözle görülür derece bir zaman farkı olacaktır.

Siz bu tür projelerde mobil tarafında bir database mi tutuyorsunuz bu konuda çok hızlı veri gelmesi nasıl sağlanabilir.
XE6aQ0.png

Örnek Proje detayları;
İşlem detayları ve resimleri MSSQL database tutuluyor;
Resim alanı  tipi : varbinary(MAX)

*Delphi Mobil tarafta Unidac ile  direk MSSQL bağlanıp veri çekiyorum, sorunun asıl kaynağı burası olabilir mi?
Cevapla
#2
Merhaba,

UniGUI'de sonuçta DB'den okumayacak mı, nasıl gözle görülür bir fark olabilir?

Burada ağ trafiğine yük bindirecek olan ana unsur resimlerin kapladığı alan değil mi?
Cevapla
#3
(02-11-2017, Saat: 22:49)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

UniGUI'de sonuçta DB'den okumayacak mı, nasıl gözle görülür bir fark olabilir?

Burada ağ trafiğine yük bindirecek olan ana unsur resimlerin kapladığı alan değil mi?

Unigui dll veya exe si database'nin bulunduğu server tarafında  çalışıyor. Veriyi bu şekilde çekip web protokolleri ile veriyi bize gösterirken, Firemonkey projesinde telefondaki uygulama Server'a bağlanıp resimleri telefonun hafızasına indirmeye çalışıyor. + web tarafında verinin tümü çekiliyor ve proje aynı serverda olduğu için gösterimde ekrana sığan kısmı gösteriliyor.  Halbuki firemonkey tarafında ilgili tüm daha öncelikle serverdan telefonun hafızasına çekiliyor.

*Verilerin çekilme işlemindeki sorguları MSSQL tarafındaki Stored Procedure yürütüyor. Firemonkey veya unigu projelerinde sadece parametreler gidiyor sonuçlar dönüyor.
Cevapla
#4
(02-11-2017, Saat: 23:16)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(02-11-2017, Saat: 22:49)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlMerhaba,

UniGUI'de sonuçta DB'den okumayacak mı, nasıl gözle görülür bir fark olabilir?

Burada ağ trafiğine yük bindirecek olan ana unsur resimlerin kapladığı alan değil mi?

Unigui dll veya exe si database'nin bulunduğu server tarafında  çalışıyor. Veriyi bu şekilde çekip web protokolleri ile veriyi bize gösterirken, Firemonkey projesinde telefondaki uygulama Server'a bağlanıp resimleri telefonun hafızasına indirmeye çalışıyor. + web tarafında verinin tümü çekiliyor ve proje aynı serverda olduğu için gösterimde ekrana sığan kısmı gösteriliyor.  Halbuki firemonkey tarafında ilgili tüm daha öncelikle serverdan telefonun hafızasına çekiliyor.

*Verilerin çekilme işlemindeki sorguları MSSQL tarafındaki Stored Procedure yürütüyor. Firemonkey veya unigu projelerinde sadece parametreler gidiyor sonuçlar dönüyor.

Bu durumda kablodan geçen veri açısından bir fark yok gibi durmuyor mu sizce de? Sonuçta her iki yöntemde de verinin tamamı karşı tarafa gittiğine göre bir fark göremiyorum. Yani 10 kb'lık bir vei listesi unigui üzerinden de gitse, doğrudan Database üzerinden de gitse sonuçta toplam olarak 10 KB olmuyor mu?
Cevapla
#5
(02-11-2017, Saat: 23:24)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(02-11-2017, Saat: 23:16)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlUnigui dll veya exe si database'nin bulunduğu server tarafında  çalışıyor. Veriyi bu şekilde çekip web protokolleri ile veriyi bize gösterirken, Firemonkey projesinde telefondaki uygulama Server'a bağlanıp resimleri telefonun hafızasına indirmeye çalışıyor. + web tarafında verinin tümü çekiliyor ve proje aynı serverda olduğu için gösterimde ekrana sığan kısmı gösteriliyor.  Halbuki firemonkey tarafında ilgili tüm daha öncelikle serverdan telefonun hafızasına çekiliyor.

*Verilerin çekilme işlemindeki sorguları MSSQL tarafındaki Stored Procedure yürütüyor. Firemonkey veya unigu projelerinde sadece parametreler gidiyor sonuçlar dönüyor.

Bu durumda kablodan geçen veri açısından bir fark yok gibi durmuyor mu sizce de? Sonuçta her iki yöntemde de verinin tamamı karşı tarafa gittiğine göre bir fark göremiyorum. Yani 10 kb'lık bir vei listesi unigui üzerinden de gitse, doğrudan Database üzerinden de gitse sonuçta toplam olarak 10 KB olmuyor mu?

Unigui projesi serverda çalıştığında verinin tamamı kendisinde, ekrana sadece örneğin 1 sayfalık veri gönderiyor, Firemonkey tarafında ise tüm veriyi telefona gönderiyor. Unigui tarafında 2. sayfaya tıkladığınızda kendi belleğindeki resim dosyalarını telefonunuza gönderiyor.

Örnek olması açısından; Google aramalarında alttaki bilmem kaç milyoncuk sayfa listesini düşünün, sadece bize ilk sayfayı yüklüyor.
Cevapla
#6
(03-11-2017, Saat: 00:12)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(02-11-2017, Saat: 23:24)uparlayan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlBu durumda kablodan geçen veri açısından bir fark yok gibi durmuyor mu sizce de? Sonuçta her iki yöntemde de verinin tamamı karşı tarafa gittiğine göre bir fark göremiyorum. Yani 10 kb'lık bir vei listesi unigui üzerinden de gitse, doğrudan Database üzerinden de gitse sonuçta toplam olarak 10 KB olmuyor mu?

Unigui projesi serverda çalıştığında verinin tamamı kendisinde, ekrana sadece örneğin 1 sayfalık veri gönderiyor, Firemonkey tarafında ise tüm veriyi telefona gönderiyor. Unigui tarafında 2. sayfaya tıkladığınızda kendi belleğindeki resim dosyalarını telefonunuza gönderiyor.

Örnek olması açısından; Google aramalarında alttaki bilmem kaç milyoncuk sayfa listesini düşünün, sadece bize ilk sayfayı yüklüyor.

Merhaba,
Bazı mimarilerin kullanmış olduğu veri yapısı ve protokoller network trafiğinizi çok meşgul etmeden en düşük paket boyutları ile veri transferi yaparlar. 
Önemli olan bu en doğru mimariyi bulmak ve bu kapsamda çalışmalara başlamaktır. Örnek verecek olursak; Back-End / Front-End mimarili uygulamalar.
FireMonkey tarafındaki tüm verilerin mobil platforma çekilmesi kodlama ile ilgili bir durumdur. UniGUI, istekte bulunduğunuz veriyi klasik page mantığıyla sunuyor.
Benzer şekilde mobil uygulamalarda da bu mümkündür. Bir çok mobil uygulamaya bakın; listelemek istediğiniz ilk 10-15 kayıt ekrana gelir, siz kayıtları yukarı doğru kaydırdığınızda, sonraki 10-15 kayıt gelir ve durum kayıt sonuna kadar devam eder.
O halde sorun Delphi & FireMonkey ile ilgili değildir. (Bu cümleyi 4-5 konu başlığı altında yazmak zorunda kaldım. Sebebini de yazmıştım. Mobil platform uygulama geliştirme yöntemlerine biraz aşina olmak gerekiyor.)
While true do; Hayat döngüsü, kısır değildir! Yapılan bir yanlış, o döngünün dışına çıkmanızı sağlayacaktır.
WWW
Cevapla
#7
size şöyle bir tavsiye versem: 2 adet resim alanı yapın.. Kullanıcı ana resmi yüklediğinde birde küçük resim oluştursun. Listelerken küçük resmi listeleyin.. Listviewde Küçük resim tıklandığında büyük resim açılsın vs..
WWW
Cevapla
#8
(04-11-2017, Saat: 00:37)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olsize şöyle bir tavsiye versem: 2 adet resim alanı yapın.. Kullanıcı ana resmi yüklediğinde birde küçük resim oluştursun. Listelerken küçük resmi listeleyin.. Listviewde Küçük resim tıklandığında büyük resim açılsın vs..

Kesinlikle yapılması gereken budur, yıllar önce yazdığım bir php projesinde aynı sistemi kullanmıştım, her defasında 640*480 boyutunda bir resmi aktarmak yerine, resmi programa yüklerken 128*96 ebatında hatta kaliteden de ödün vererek 2. bir kopyasını daha oluşturup önizlemede bunu kullanıp tıklandığında gerçek resmin açılmasını sağlayıp mümkün olan minimum veri trafiği oluşturmak en akıllıca yöntemdir.
Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
WWW
Cevapla
#9
(04-11-2017, Saat: 09:29)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(04-11-2017, Saat: 00:37)mcuyan Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Olsize şöyle bir tavsiye versem: 2 adet resim alanı yapın.. Kullanıcı ana resmi yüklediğinde birde küçük resim oluştursun. Listelerken küçük resmi listeleyin.. Listviewde Küçük resim tıklandığında büyük resim açılsın vs..

Kesinlikle yapılması gereken budur, yıllar önce yazdığım bir php projesinde aynı sistemi kullanmıştım, her defasında 640*480 boyutunda bir resmi aktarmak yerine, resmi programa yüklerken 128*96 ebatında hatta kaliteden de ödün vererek 2. bir kopyasını daha oluşturup önizlemede bunu kullanıp tıklandığında gerçek resmin açılmasını sağlayıp mümkün olan minimum veri trafiği oluşturmak en akıllıca yöntemdir.

Çok basit gibi görünsede akıllıca bir yöntem hiç aklıma gelmemişti, ilginç  Smile
Fesih hocam bana kızdığını biliyorum  Smile Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol çıkarmadın ki mobil tarafı kafamızda ne anlayalım.
Cevapla
#10
(04-11-2017, Saat: 23:35)pro_imaj Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol
(04-11-2017, Saat: 09:29)esistem Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Giriş yap veya Üye OlKesinlikle yapılması gereken budur, yıllar önce yazdığım bir php projesinde aynı sistemi kullanmıştım, her defasında 640*480 boyutunda bir resmi aktarmak yerine, resmi programa yüklerken 128*96 ebatında hatta kaliteden de ödün vererek 2. bir kopyasını daha oluşturup önizlemede bunu kullanıp tıklandığında gerçek resmin açılmasını sağlayıp mümkün olan minimum veri trafiği oluşturmak en akıllıca yöntemdir.

Çok basit gibi görünsede akıllıca bir yöntem hiç aklıma gelmemişti, ilginç  Smile
Fesih hocam bana kızdığını biliyorum  Smile Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol çıkarmadın ki mobil tarafı kafamızda ne anlayalım.

Bir çok alışveriş sistemi bu sistemi kullanıyor örnek opencart kategori sayfası resim boyutu 40*40 pxdediğinizde resmi 40*40px olarak boyutlandırıp farklı bir klasöre alıyor siz kategori sayfasında o 40*40px ı görüyorsunuz ürün sayfası resim boyutu olarak örnek 800*1200px vermiş iseniz siz ana resim olarak 2000*1500 px resim yükleseniz dahi 800*1200px olarak boyutlandırıp farklı bir klasörde tutup ürün sayfasında da o resmi gösteriyor
örnek
yüklenen resim                          "image/data/resim1.jpg"
boyutlandırılan categori resmi    "image/cache/resim1-40*40.jpg"
boyutlandırılan ana resim           "image/cache/resim1-800*1200.jpg"

Resim boyutlandırma için v.s işlemler için Linkleri Görebilmeniz İçin Giriş yap veya Üye Ol kullanıyorum

“Do. Or do not. There is no try.”
Cevapla

Konuyu Paylaş : facebook gplus twitter



Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  FireBase (FCM) Push Notification Mobil Data Kullanımındaki Sorun Fesih ARSLAN 0 34 24-04-2018, Saat: 12:19
Son Yorum: Fesih ARSLAN
  datasnap Mobil İnternet bağlantı sorunu hakanharbeli 9 312 19-02-2018, Saat: 08:36
Son Yorum: hakanharbeli
  DelphiCan Mobil Uygulaması Fesih ARSLAN 6 1.382 31-10-2017, Saat: 09:33
Son Yorum: Fesih ARSLAN
  Mobil'de Rapor Yapmak pro_imaj 6 360 18-09-2017, Saat: 12:56
Son Yorum: Abdullah ILGAZ
  Mobil uygulamada Resim kalitesi hk. barutali 6 506 27-07-2017, Saat: 22:55
Son Yorum: barutali



Konuyu Okuyanlar: 1 Ziyaretçi