C# PDF İşleme ile Gecikmeleri Yönetmek için WaitFor Nasıl Kullanılır

Using the C# WaitFor Class to Delay PDF Rendering

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronPDF'deki C# WaitFor sınıfı, geliştiricilerin tüm varlıklar, yazı tipleri ve JavaScript yüklenene kadar PDF oluşturmayı geciktirmelerine yardımcı olur ve RenderDelay, NetworkIdle ve JavaScript tetikleyicileri gibi yöntemleri kullanarak eksik oluşturma işlemlerini önler.

Hızlı Başlangıç: PDF Görüntülemeyi İyileştirmek için WaitFor Kullanımı

IronPDF'nin WaitFor özelliği, geliştiricilerin asenkron zamanlamayı yöneterek PDF görüntülemeyi iyileştirmelerine olanak tanır. RenderDelay gibi seçenekleri ayarlayarak, dönüştürme işleminden önce tüm varlıkların ve komut dosyalarının yüklendiğinden emin olabilir ve PDF belgelerinin eksik kalmasını önleyebilirsiniz. Bu kılavuz, projelerinizde WaitFor öğesini kullanarak doğru ve verimli bir şekilde görüntülemeyi nasıl gerçekleştireceğinizi gösterir.

new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
    .RenderUrlAsPdf("https://example.com")
    .SaveAs("output.pdf");
new IronPdf.ChromePdfRenderer { RenderingOptions = { WaitFor = IronPdf.WaitFor.RenderDelay(3000) } }
    .RenderUrlAsPdf("https://example.com")
    .SaveAs("output.pdf");
$vbLabelText   $csharpLabel

WaitFor Sınıfı ve Seçenekleri Nedir?

PDF'leri optimum performansla görüntülemek için WaitFor sınıfı, PDF görüntüleme sürecini iyileştirir. WaitFor nesnesi, RenderOptions'den çeşitli seçenekler sunar:

  • PageLoad: Bekleme süresi olmayan varsayılan görüntüleme.
  • RenderDelay: İstenilen bir bekleme süresi ayarlar.
  • Fonts: Tüm yazı tipleri yüklenene kadar bekler.
  • JavaScript: JavaScript işleviyle görüntülemeyi tetikler.
  • HTML elements: Elemanları hedeflemek için eleman kimlikleri, adları, etiket adları ve sorgu seçicileri gibi belirli HTML elemanlarını bekler.
  • NetworkIdle: Ağın boşta kalmasını bekler (0, 2 veya özel bir süre).

Bu özellikler, IronPDF ile HTML dizelerini PDF'ye, HTML dosyalarını PDF'ye ve web URL'lerini PDF'ye dönüştürürken çalışır.

Beklemeden PDF'leri Hemen Nasıl Oluşturabilirim?

Varsayılan olarak, sayfa yükleme işlemi tamamlandıktan hemen sonra görüntüleme gerçekleşir. Normal görüntüleme için `` yönteminin çağrılmasına gerek yoktur. Bu yaklaşım, karmaşık JavaScript veya harici kaynaklar içermeyen basit HTML içeriği için uygundur.

: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>")
$vbLabelText   $csharpLabel

PDF Oluşturma Öncesi Özel Bir Gecikme Nasıl Eklenir?

PDF'yi oluşturmadan önce belirli bir gecikme gerekiyorsa, gecikme olarak istediğiniz milisaniye sayısını ayarlayabilirsiniz. Bu, özellikle JavaScript ağırlıklı içeriklerle uğraşırken belirli zamanlama gereksinimleri için esneklik sağlar.

Bu seçenek, özelliğini kullanan eski uygulamayla aynı şekilde çalışır. Ancak, eski özellik artık kullanılmamaktadır. Yeni API&#x27;yi kullanın:.

: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>")
$vbLabelText   $csharpLabel

Gecikme mekanizması, HTML'nizde animasyonlar veya gecikmeli yüklenen içerik varsa ya da dinamik içerik oluşturulması için zamana ihtiyaç duyuluyorsa kullanışlıdır. Karmaşık görüntüleme senaryoları için özel görüntüleme seçeneklerini inceleyin.

Render işlemini gerçekleştirmeden önce tüm yazı tiplerinin yüklenmesini nasıl bekleyebilirim?

sınıfındaki yöntemi, Google Fonts gibi harici kaynaklardan tüm yazı tipleri yüklenene kadar PDF işlemeyi duraklatır. Bu, nihai PDF dosyasının gerekli tüm yazı tiplerini içermesini ve belgenin amaçlanan tipografisini ve görsel görünümünü korumasını 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)
$vbLabelText   $csharpLabel

Gömme ve alt küme oluşturma seçenekleri dahil olmak üzere PDF'lerdeki yazı tiplerini yönetme hakkında daha fazla bilgi için, PDF'lerdeki yazı tiplerini yönetme kılavuzuna bakın.

Özel JavaScript Kullanarak PDF Oluşturmayı Nasıl Tetiklerim?

Görüntüleme süreci üzerinde daha fazla kontrol sahibi olmak için, PDF belgesini görüntülemeden önce çalıştırılacak özel bir JavaScript işlevi belirtebilirsiniz. Bu, render işlemini başlatmadan önce gerekli görevleri veya kontrolleri gerçekleştirmenizi sağlar ve render işlemini ne zaman tetikleyeceğinizi kontrol etmenizi sağlar.

JavaScript'te, işlevi, görüntüleme görevini tetikler. çağrıldığında, işleme süreci başlar. İşlevi ne zaman çağıracağınızı 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);
JAVASCRIPT

Bu yaklaşım, AJAX istekleriyle birleştirildiğinde veya dinamik olarak oluşturulan içeriğin görüntülenmeden önce tamamen yüklenmesini sağladığında etkilidir. Gelişmiş JavaScript senaryoları için, PDF'lerde özel JavaScript'i çalıştırma kılavuzuna bakın.

Render işlemini gerçekleştirmeden önce belirli HTML öğelerini nasıl bekleyebilirim?

Bu seçenekle, işleme süreci, öğeleri hedeflemek için öğe kimlikleri, adları, etiket adları ve sorgu seçicileri gibi belirli HTML öğelerini bekler. Bu özellik, Tek Sayfalı Uygulamalar (SPA'lar) veya eşzamansız olarak yüklenen içeriklerle çalışırken yardımcı olur.

Bir öğeyi kimliğine göre nasıl beklerim?

Aşağıdaki kod örneğinde, işleme belirli bir öğe kimliğini beklemektedir.

: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)
$vbLabelText   $csharpLabel

Bir öğeyi isim özniteliğine göre nasıl beklerim?

Renderleme işlemi, aşağıdaki kod örneğinde belirli bir öğe 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)
$vbLabelText   $csharpLabel

Etiket Adına Göre Öğeleri Nasıl Beklerim?

Renderleme işlemi, aşağıdaki kod örneğinde belirli bir öğe 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)
$vbLabelText   $csharpLabel

Elemanları Beklemek İçin Sorgu Seçicilerini Nasıl Kullanırım?

Renderleme işlemi, aşağıdaki kod örneğinde sorgu seçicisi tarafından seçilen öğeyi bekler. yöntemi,img etiketietiketini bekler; bu etiketinid'si 'myid'veclass'ı 'blablastyle'`` olmalıdır.

: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)
$vbLabelText   $csharpLabel

Ağ Etkinliğinin Tamamlanmasını Nasıl Beklerim?

Kaynaklar, veriler veya API çağrıları için ağ istekleri yapan web sayfalarını işlerken, PDF'yi oluşturmadan önce tüm ağ etkinliklerinin tamamlandığından emin olun. IronPDF, farklı ağ senaryolarını yönetmek için çeşitli yöntemler sunar.

Ne zaman sıfır ağ etkinliği beklemeliyim?

Bu tür ağ bekleme durumu, ağ etkinliği kalmayana kadar bekler; bu durum genellikle içeriğin tamamen yüklendiğini gösterir. Bu, uzun aralıklı ağ istekleri veya sürekli ağ etkinliği olmayan Tek Sayfalı Uygulamalar (SPA'lar) veya basit web sayfaları için uygundur.

Render işlemi, en az 500 ms 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>")
$vbLabelText   $csharpLabel

Ne Zaman İki Ağ Etkinliğine İzin Vermeli?

`` yöntemi, uzun aralıklı ağ istekleri veya kalp atışı pingleri içeren web uygulamaları veya web sayfaları için uygundur. Genellikle 1-2 istek söz konusudur. Bu istekler devam ediyor olsa bile, en fazla iki tane olması kabul edilebilir olduğundan, ağ atıl durum olayının tetiklenmesini geçersiz kılmaz.

Renderleme sürecini başlatmadan önce, en az 500 ms boyunca en fazla iki ağ etkinliği kalmış olmalıdır. Bu seçenek, sabit sayıda ağ etkinliğini yönetmek için hızlı bir 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>")
$vbLabelText   $csharpLabel

Ağ Etkinliği Eşiklerini Nasıl Özelleştirebilirim?

Birden fazla ağ isteği söz konusu olduğunda, hem ağ bekleme süresini hem de ağ bekleme olayını geçersiz kılmaz şekilde 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 çok çeşitli kullanım senaryolarını ele almaktadı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>")
$vbLabelText   $csharpLabel

Bu düzeyde özelleştirme, kalıcı bağlantılar kuran veya öngörülebilir arka plan ağ etkinliği modellerine sahip karmaşık web uygulamalarıyla çalışırken değerlidir.

Maksimum Bekleme Süresini Nasıl Ayarlayabilirim?

,, ve yöntemleri, bekleme süresinin süresiz olmamasını sağlamak için maksimum bekleme süresini ayarlamanıza olanak tanır. Bu yöntemlerin `` parametresi bu amaca hizmet eder. Bu, beklenen koşullar hiçbir zaman gerçekleşmezse uygulamanızın süresiz olarak kilitlenmesini önler.

Belirtilen tüm zaman değerleri milisaniye cinsindendir.

Bu bekleme stratejilerini uygularken, içeriğin tamamen yüklenmesini sağlamak ile makul bir performans seviyesini korumak arasında bir denge kurun. Hassas zamanlama kontrolü gerektiren uygulamalar için, asenkron PDF oluşturma tekniklerini inceleyin.

Başka neler yapabileceğinizi görmek ister misiniz? Buradaki eğitim sayfasını inceleyin: Ek Özellikler veya daha gelişmiş 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.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,014,616 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.