Using the C# WaitFor Class to Delay PDF Rendering
IronPDF içinde yer alan C# WaitFor sınıfı, geliştiricilerin tüm varlıklar, yazı tipleri ve JavaScript yüklendikten sonra PDF işlemeyi geciktirmelerine yardımcı olur. RenderDelay, NetworkIdle ve JavaScript tetikleyicileri gibi yöntemler kullanarak eksik işlemeleri önler.
Hızlı Başlangıç: PDF İşlemeyi İyileştirmek için WaitFor Kullanımı
IronPDF'nin WaitFor özelliği, geliştiricilerin eş zamanlı olmayan zamanlamayı yöneterek PDF işlemeyi iyileştirmelerine olanak tanır. RenderDelay gibi seçenekleri ayarlayarak, dönüşümden önce tüm varlıkların ve komut dosyalarının yüklendiğinden emin olabilir, eksik PDF belgelerinin önüne geçebilirsiniz. Bu kılavuz, projelerinizde WaitFor uygulamanın kesin ve verimli işlemeyi nasıl sağladığını gösterir.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-1.cs
new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
.RenderUrlAsPdf("https://example.com")
.SaveAs("output.pdf");
Imports IronPdf
Dim renderer As New ChromePdfRenderer With {
.RenderingOptions = New ChromePdfRenderOptions With {
.WaitFor = WaitFor.RenderDelay(3000)
}
}
renderer.RenderUrlAsPdf("https://example.com").SaveAs("output.pdf")
Asgari İş Akışı (5 adım)
- PDF işlemeyi geciktirmek için C# IronPDF kütüphanesini indirin
- HTML dizgisinden, dosyasından veya web URL'sinden bir PDF belgesi oluşturun
WaitForJavaScript yöntemini kullanarak bir JavaScript işlevinden render işlemini tetikleyin- Ağ etkinliklerinin sayısına dayanarak renderi geciktirin
- Belirli HTML elemanlarını bekleyin ve tüm fontların yüklendiğinden emin olun
WaitFor Sınıfı ve Seçenekleri Nelerdir?
Optimal performansla PDF işlemek için, WaitFor sınıfı, PDF işleme sürecini iyileştirir. RenderOptions'ten WaitFor nesnesi birkaç seçenek sunar:
PageLoad: Bekleme yapmadan varsayılan işlem.RenderDelay: Keyfi bir bekleme süresi belirler.Fonts: Tüm yazı tipleri yüklenene kadar bekler.JavaScript: Bir JavaScript işlevi ile işleme tetikler.HTML elements: Eleman ID'leri, adları, etiket adları ve sorgu seçicilerini hedef alarak belirli HTML elemanlarını bekler.NetworkIdle: Ağ boşta beklemeyi bekler (0, 2 veya özel bir miktar).
Bu özellikler, HTML dizgileriyle PDF dönüşümü, HTML dosyalarını PDF dönüşümü ve web URL'lerini PDF dönüşümü ile çalışırken kullanılabilir.
PDF'leri Beklemeden Hemen Nasıl İşlerim?
Varsayılan olarak, sayfa yüklenmesi tamamlandıktan hemen sonra işleme başlar. PageLoad yöntemi normal işleme için çağrılmak zorunda değildir. Bu yaklaşım, karmaşık JavaScript veya harici kaynak içermeyen basit HTML içerikleri için iyi çalışır.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-pageload.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Render as soon as the page is loaded
renderer.RenderingOptions.WaitFor.PageLoad()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
PDF İşlemeyi Geciktirmek İçin Özel Bir Gecikmeyi Nasıl Eklerim?
PDF işlemeyle ilgili spesifik bir gecikme gerektiğinde, gecikme olarak keyfi bir milisaniye sayısı ayarlayabilirsiniz. Bu, JavaScript ağırlıklı içerikle çalışırken özellikle belirli zamanlama gereksinimleri için esneklik sağlar.
Bu seçenek eski uygulama ile RenderingOptions.RenderDelay özelliği kullanılarak aynı şekilde çalışır. Ancak, eski özellik kullanımdan kaldırılmıştır. Yeni API'yi kullanın: RenderingOptions.WaitFor.RenderDelay.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-delay-time.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render after 3000ms
renderer.RenderingOptions.WaitFor.RenderDelay(3000);
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
' Render after 3000ms
renderer.RenderingOptions.WaitFor.RenderDelay(3000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
Gecikme mekanizması, HTML'niz animasyonlar, tembel yüklenmiş içerik içeriyorsa veya dinamik içerik üretimi için zaman gerekiyorsa yararlıdır. Karmaşık işleme senaryoları için özel işleme seçeneklerini keşfedin.
Tüm Fontların Yüklenmesini Beklemeden Önce Nasıl Beklerim?
WaitFor sınıfında yer alan AllFontsLoaded yöntemi, PDF işlemeyi harici kaynaklardan, örneğin Google Fonts'tan, tüm yazı tipleri yüklenene kadar duraklatır. Bu, son PDF'nin, belgenin tasarlandığı tipografi ve görsel görünümü koruyarak, gereken tüm fontları içermesini sağlar. Bu özellik, profesyonel PDF çıktı kalitesini korur.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-all-fonts.cs
using IronPdf;
string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Test Registration of Extension</title>
<!-- for google web fonts -->
<link rel=""preconnect"" href=""https://fonts.googleapis.com"">
<link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
<link rel=""stylesheet"" href=""https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"" >
<style>
/* for remote fonts */
@font-face {
font-family: 'CustomFont';
src: url('https://stage.gradfinale.co.uk/tcpdf/fonts/avgr65wttf.ttf');
}
p#p1 { font-family: CustomFont, sans-serif; }
/* for local fonts */
@font-face {
font-family: 'LocalCustomFont';
src: local('Arial');
}
p#p3 { font-family: LocalCustomFont, sans-serif; }
</style>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<p style=""font-family: Roboto, monospace;"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
<p id=""p1"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
<p id=""p3"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
</body>
</html>)";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Test Registration of Extension</title>
<!-- for google web fonts -->
<link rel=""preconnect"" href=""https://fonts.googleapis.com"">
<link rel=""preconnect"" href=""https://fonts.gstatic.com"" crossorigin>
<link rel=""stylesheet"" href=""https://fonts.googleapis.com/css2?family=Roboto:wght@400;700&display=swap"" >
<style>
/* for remote fonts */
@font-face {
font-family: 'CustomFont';
src: url('https://stage.gradfinale.co.uk/tcpdf/fonts/avgr65wttf.ttf');
}
p#p1 { font-family: CustomFont, sans-serif; }
/* for local fonts */
@font-face {
font-family: 'LocalCustomFont';
src: local('Arial');
}
p#p3 { font-family: LocalCustomFont, sans-serif; }
</style>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<p style=""font-family: Roboto, monospace;"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
<p id=""p1"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
<p id=""p3"">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nulla scelerisque ligula venenatis erat <strong>scelerisque</strong> auctor.</p>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.AllFontsLoaded(10000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
PDF'lerde, gömme ve alt kümeleme seçeneklerini yönetmeyi içeren fontları yönetmeyle ilgili daha fazla bilgi için, PDF'lerde fontları yönetme kurallarına bakın.
IronSuite, operasyonlarımızda kritik bir rol oynar. Bunlar, iş süreçlerinde verimliliği artıran, kat planları oluşturmak ve envanter yönetimini geliştirmek gibi araçlardır.
Özel JavaScript Kullanarak PDF İşlemeyi Nasıl Tetiklerim?
İşleme süreci üzerinde daha fazla kontrol sağlayabilmek için, PDF belgesini işlemden önce bir JavaScript işlevinin yürütülmesini sağlayabilirsiniz. Bu, işlem sürecini başlatmadan önce gerekli görevleri veya denetimleri yapmanıza izin verir, bu sayede renderin ne zaman başlatılacağını kontrol edersiniz.
JavaScript'te, window.ironpdf.notifyRender() fonksiyonu işleme görevini tetikler. notifyRender() çağrıldığında, işleme süreci başlar. Fonksiyonun ne zaman çağrılacağını siz kontrol edersiniz.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-javascript.cs
using IronPdf;
string html = @"<!DOCTYPE html>
<html>
<body>
<h1>Testing</h1>
<script type='text/javascript'>
// Set delay
setTimeout(function() {
window.ironpdf.notifyRender();
}, 1000);
</script>
</body>
</html>";
ChromePdfRenderOptions renderingOptions = new ChromePdfRenderOptions();
// Set rendering to wait for the notifyRender function
renderingOptions.WaitFor.JavaScript(5000);
PdfDocument pdf = ChromePdfRenderer.StaticRenderHtmlAsPdf(html, renderingOptions);
Bu yaklaşım, AJAX istekleriyle birlikte veya dinamik olarak üretilen içeriğin tamamen yüklendiğinden emin olurken etkilidir. Gelişmiş JavaScript senaryoları için, PDF'lerde özel JavaScript yürütme kılavuzuna bakın.
Belirli HTML Elemanlarını Beklemeden Önce Nasıl Beklerim?
Bu seçenekle, işleme süreci belirli HTML elemanlarını bekler, element ID'leri, adları, etiket adları ve elemanları hedeflemek için sorgu seçicilerini içerir. Bu özellik, Tek Sayfa Uygulamaları (SPA'lar) veya içeriğin asenkron olarak yüklendiği durumlar için yardımcı olur.
Bir Elemanı ID ile Beklemek Nasıl Yapılır?
Aşağıdaki kod örneğinde belirli bir element ID'sini bekler.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-id.cs
using IronPdf;
string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var h1Tag = document.createElement(""h1"");
h1Tag.innerHTML = ""bla bla bla"";
h1Tag.setAttribute(""id"", ""myid"");
var block = document.querySelector(""div#x"");
block.appendChild(h1Tag);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var h1Tag = document.createElement(""h1"");
h1Tag.innerHTML = ""bla bla bla"";
h1Tag.setAttribute(""id"", ""myid"");
var block = document.querySelector(""div#x"");
block.appendChild(h1Tag);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
Bir Elemanı Ad Özelliği ile Beklemek Nasıl Yapılır?
Aşağıdaki kod örneğinde belirli bir element adını bekler.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-id.cs
using IronPdf;
string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var h1Tag = document.createElement(""h1"");
h1Tag.innerHTML = ""bla bla bla"";
h1Tag.setAttribute(""id"", ""myid"");
var block = document.querySelector(""div#x"");
block.appendChild(h1Tag);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var h1Tag = document.createElement(""h1"");
h1Tag.innerHTML = ""bla bla bla"";
h1Tag.setAttribute(""id"", ""myid"");
var block = document.querySelector(""div#x"");
block.appendChild(h1Tag);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementById("myid", 5000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
Etiket Adı ile Elemanları Beklemek Nasıl Yapılır?
Aşağıdaki kod örneğinde belirli bir element etiket adını bekler.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-tag-name.cs
using IronPdf;
string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var newElem = document.createElement(""h2"");
newElem.innerHTML = ""bla bla bla"";
var block = document.querySelector(""div#x"");
block.appendChild(newElem);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Delayed render tests</title>
<script type=""text/javascript"">
setTimeout(function() {
var newElem = document.createElement(""h2"");
newElem.innerHTML = ""bla bla bla"";
var block = document.querySelector(""div#x"");
block.appendChild(newElem);
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlElementByTagName("h2", 5000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
Sorgu Seçicileri ile Elemanları Beklemek Nasıl Kullanılır?
Aşağıdaki kod örneğinde, sorgu seçicisiyle seçilen elemanı bekler. HtmlQuerySelector metodu, id of 'myid' ve class of 'blablastyle' ile img tag bekler.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-html-element-query-selector.cs
using IronPdf;
string htmlContent = @"
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Test Registration of Extension</title>
<script type=""text/javascript"">
setTimeout(function() {
var img = document.createElement(""img"");
img.onload = function() {
img.setAttribute(""id"", ""myid"");
img.setAttribute(""class"", ""blablastyle"");
var block = document.getElementById(""x"");
block.appendChild(img);
};
img.src = ""https://www.w3schools.com/images/picture.jpg""; // .src after .onload to ignore cached, if any
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>";
ChromePdfRenderer renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000);
PdfDocument pdf = renderer.RenderHtmlAsPdf(htmlContent);
Imports IronPdf
Dim htmlContent As String = "
<!DOCTYPE html>
<html lang=""en"">
<head>
<meta charset=""UTF-8"">
<title>Test Registration of Extension</title>
<script type=""text/javascript"">
setTimeout(function() {
var img = document.createElement(""img"");
img.onload = function() {
img.setAttribute(""id"", ""myid"");
img.setAttribute(""class"", ""blablastyle"");
var block = document.getElementById(""x"");
block.appendChild(img);
};
img.src = ""https://www.w3schools.com/images/picture.jpg""; // .src after .onload to ignore cached, if any
}, 1000);
</script>
</head>
<body>
<h1>This is Delayed Render Test!</h1>
<div id=""x""></div>
</body>
</html>"
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.WaitFor.HtmlQuerySelector("img#myid.blablastyle", 5000)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(htmlContent)
Ağ Etkinliğinin Tamamlanmasını Nasıl Beklerim?
Kaynaklar, veri veya API çağrıları için ağ istekleri yapan web sayfaları işlerken, PDF'i oluşturmadan önce tüm ağ etkinliğinin tamamlandığından emin olun. IronPDF, farklı ağ senaryolarını yönetmek için çeşitli yöntemler sağlar.
Sıfır Ağ Etkinliği İçin Ne Zaman Beklemeliyim?
Bu tür ağ bekleme, genellikle içeriğin tamamen yüklendiğini belirterek, ağ etkinliği olmadığında beklemenin bittiğini belirtir. Bu, sürekli ağ isteği veya fona Ağ etkinliği olmayan Tek Sayfa Uygulamaları (SPA'lar) veya basit web sayfaları için uygundur.
İşleme süreci, en azından 500ms boyunca devam eden ağ etkinliği olmadığında başlar.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-0.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render unless there has been no network activity for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle0();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Render unless there has been no network activity for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle0()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
İki Ağ Etkinliğine Ne Zaman İzin Vermeliyim?
NetworkIdle2 yöntemi, uzun süreli ağ istekleri veya kalp atışı pingleri olan web uygulamaları veya web sayfaları için uygundur. Genellikle 1-2 istek içerir. Bu istekler devam etse bile, iki taneye kadar kabul edilir olduğundan, ağ bekleme etkinliğini tetiklemesini geçersiz kılmazlar.
İşleme sürecini başlatmadan önce, en fazla iki ağ etkinliği daha kalmalı ve en azından 500ms boyunca devam etmelidir. Bu seçenek, sabit bir ağ etkinlikleri sayısını yönetmek için hızlı yapılandırma sağlar.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-network-idle-2.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render unless there are at most 2 network activities for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle2();
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf
Dim renderer As New ChromePdfRenderer()
' Render unless there are at most 2 network activities for at least 500ms
renderer.RenderingOptions.WaitFor.NetworkIdle2()
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
Ağ Etkinliği Eşiklerini Nasıl Özelleştiririm?
Birden fazla ağ isteği durumunda, hem ağ bekleme süresini hem de ağ bekleme etkinliğini geçersiz kılmayan izin verilen ağ isteklerinin sayısını özelleştirebilirsiniz. Bu seçenek, önceki iki yönteme uymayan belirli gereksinimleri olan web uygulamaları veya web sayfaları için uygundur. Bu özelleştirme, farklı koşullar altında çeşitli kullanım durumlarını ele alır.
:path=/static-assets/pdf/content-code-examples/how-to/waitfor-customize-network.cs
using IronPdf;
ChromePdfRenderer renderer = new ChromePdfRenderer();
// Render unless there are at most 5 network activities for at least 1000ms
renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5);
PdfDocument pdf = renderer.RenderHtmlAsPdf("<h1>testing</h1>");
Imports IronPdf
Private renderer As New ChromePdfRenderer()
' Render unless there are at most 5 network activities for at least 1000ms
renderer.RenderingOptions.WaitFor.NetworkIdle(1000, 5)
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf("<h1>testing</h1>")
Bu seviyedeki özelleştirme, kalıcı bağlantılar sürdüren veya tahmin edilebilir arka plan ağ etkinliği örüntüleri olan karmaşık web uygulamalarıyla çalışırken değerlidir.
Azami Bekleme Süresini Nasıl Ayarlayabilirim?
JavaScript, NetworkIdle, NetworkIdle0, ve NetworkIdle2 yöntemleri, bekleme süresinin sonsuza kadar sürmemesini sağlamak amacıyla maksimum bekleme süresi ayarlamanıza olanak tanır. Bu yöntemlerin maxWaitTime parametresi bu amaca hizmet eder. Bu, beklenen koşullar asla gerçekleşmezse uygulamanızın süresiz takılmasını önler.
Belirtilen tüm zaman değerleri milisaniye cinsindendir.
Bu bekleme stratejilerini uygularırken, tam içerik yüklemesini sağlamak ile makul bir performansı korumak arasında bir denge kurun. Zamanlama kontrolü isteyen uygulamalar için, async PDF oluşturma tekniklerini keşfedin.
Başka neler yapabileceğinizi görmek için hazır mısınız? Ek özellikleri burada inceleyin: Ek Özellikler veya daha ileri teknikler için IronPDF ile PDF oluşturmayı keşfedin.
Sıkça Sorulan Sorular
WaitFor sınıfı nedir ve neden kullanmalıyım?
IronPDF'deki WaitFor sınıfı, geliştiricilere tüm varlıklar, yazı tipleri ve JavaScript yüklemeleri bitene kadar PDF işleme işlemini geciktirme olanağı sağlar. Bu, eksik renderları önler ve karmaşık web sayfalarının PDF'ye dönüştürülmeden önce tam olarak yüklenmesini sağlayarak daha doğru ve eksiksiz PDF belgeleri üretir.
Farklı WaitFor seçenekleri nelerdir?
IronPDF'nin WaitFor sınıfı çeşitli seçenekler sunar: PageLoad (varsayılan anında işleme), RenderDelay (milisaniye cinsinden özel gecikme), Fonts (tüm yazı tiplerinin yüklenmesini bekler), JavaScript (render'ı JavaScript fonksiyonu ile tetikler), HTML öğeleri (ID, ad, etiket veya sorgu seçicisi ile belirli öğeleri bekler) ve NetworkIdle (ağ etkinliğinin sona ermesini bekler).
PDF işleme öncesi özel bir gecikme nasıl eklenir?
IronPDF'deki RenderDelay yöntemi ile özel bir gecikme ekleyebilirsiniz. Basitçe gecikmeyi milisaniye cinsinden belirtin: `new ChromePdfRenderer { RenderingOptions = { WaitFor = WaitFor.RenderDelay(3000) } }`. Bu, ekstra zamana ihtiyaç duyan JavaScript ağırlıklı içerik için özellikle kullanışlıdır.
Belirli HTML öğelerinin yüklenmesini bekleyebilir miyim?
Evet, IronPDF, belirli HTML öğelerini beklemenize olanak tanır. Bu, PDF dönüşümüne başlamadan önce sayfadaki kritik içeriğin mevcut olmasını sağlar ve nihai PDF belgenizde eksik öğelerin önüne geçer.
NetworkIdle nedir ve ne zaman kullanmalıyım?
IronPDF'deki NetworkIdle, PDF işlenmeden önce ağ etkinliğinin sona ermesini bekler. 0, 2 veya özel bir ağ bağlantı sayısına ayarlanabilir. Bu, AJAX çağrıları veya diğer asenkron ağ istekleri ile içerik yükleyen sayfalar için idealdir.
PDF işlemini JavaScript'ten nasıl tetikleyebilirim?
IronPDF'nin WaitFor JavaScript seçeneği, render işlemini bir JavaScript fonksiyonundan tetiklemenize izin verir. Bu, PDF oluşturmanın ne zaman gerçekleşeceği üzerinde size tamamıyla kontrol sağlar ve tek sayfalı uygulamalar veya hassas zamanlama kontrolüne ihtiyaç duyduğunuz karmaşık JavaScript odaklı web siteleri için mükemmeldir.

